<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Dobre praktyki programowania w CakePHP #2</title>
	<atom:link href="http://blog.grzegorzpawlik.com/2009/02/dobre-praktyki-programowania-w-cakephp-2/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.grzegorzpawlik.com/2009/02/dobre-praktyki-programowania-w-cakephp-2/</link>
	<description>Doświadczenie, to coś, co zdobywamy tuż po chwili w której było nam potrzebne ...</description>
	<lastBuildDate>Tue, 07 Feb 2012 10:09:30 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Greg</title>
		<link>http://blog.grzegorzpawlik.com/2009/02/dobre-praktyki-programowania-w-cakephp-2/comment-page-1/#comment-226</link>
		<dc:creator>Greg</dc:creator>
		<pubDate>Tue, 02 Nov 2010 09:48:03 +0000</pubDate>
		<guid isPermaLink="false">http://meta.vipserv.org/blog.grzegorzpawlik.com/?p=53#comment-226</guid>
		<description>Faktycznie. Dzięki za wyłuskanie tego. Tak naprawdę jest to relacja (to o czym pisałem na blogu) hasMany a nie hasOne. 

Rozwiązanie tego problemu zależy od tego co tak naprawdę potrzebujemy. Jeśli chcemy, żeby user miał co najwyżej 1 representative photo, to w tabeli users dodajemy representative_photo_id i tworzymy odpowiednią relację hasOne.

Jeśli user może wybrać wiele takich zdjęć (i na przykład będziemy wyświetlać losowe) to struktura zostaje taka jak podałem, ale definiujemy relację hasMany (nie hasOne).

Dzięki wielkie za czujność!</description>
		<content:encoded><![CDATA[<p>Faktycznie. Dzięki za wyłuskanie tego. Tak naprawdę jest to relacja (to o czym pisałem na blogu) hasMany a nie hasOne. </p>
<p>Rozwiązanie tego problemu zależy od tego co tak naprawdę potrzebujemy. Jeśli chcemy, żeby user miał co najwyżej 1 representative photo, to w tabeli users dodajemy representative_photo_id i tworzymy odpowiednią relację hasOne.</p>
<p>Jeśli user może wybrać wiele takich zdjęć (i na przykład będziemy wyświetlać losowe) to struktura zostaje taka jak podałem, ale definiujemy relację hasMany (nie hasOne).</p>
<p>Dzięki wielkie za czujność!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kminek</title>
		<link>http://blog.grzegorzpawlik.com/2009/02/dobre-praktyki-programowania-w-cakephp-2/comment-page-1/#comment-222</link>
		<dc:creator>kminek</dc:creator>
		<pubDate>Fri, 29 Oct 2010 18:33:24 +0000</pubDate>
		<guid isPermaLink="false">http://meta.vipserv.org/blog.grzegorzpawlik.com/?p=53#comment-222</guid>
		<description>wlasnie kluczowe w tych rozwazaniach jest pole &#039;representative&#039; :) trzymajac sie przykladu z Twojego komentarza - jesli pierwszy user oznaczy sobie te dwie fotki jako representative (co rozwazasz na koncu artykulu), jego krotka w find(&#039;all&#039;) pojawi sie dwa razy :)</description>
		<content:encoded><![CDATA[<p>wlasnie kluczowe w tych rozwazaniach jest pole &#8216;representative&#8217; :) trzymajac sie przykladu z Twojego komentarza &#8211; jesli pierwszy user oznaczy sobie te dwie fotki jako representative (co rozwazasz na koncu artykulu), jego krotka w find(&#8216;all&#8217;) pojawi sie dwa razy :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg</title>
		<link>http://blog.grzegorzpawlik.com/2009/02/dobre-praktyki-programowania-w-cakephp-2/comment-page-1/#comment-220</link>
		<dc:creator>Greg</dc:creator>
		<pubDate>Fri, 29 Oct 2010 12:02:56 +0000</pubDate>
		<guid isPermaLink="false">http://meta.vipserv.org/blog.grzegorzpawlik.com/?p=53#comment-220</guid>
		<description>&lt;blockquote cite=&quot;#commentbody-219&quot;&gt;
&lt;strong&gt;&lt;a href=&quot;#comment-219&quot; rel=&quot;nofollow&quot;&gt;kminek&lt;/a&gt; :&lt;/strong&gt;
          hmmm mam maly problem. jesli obok standardowej relacji User hasMany Photo dodam ta dodatkowa relacje tak jak mowisz (czyli User hasOne RepresentativePhoto), to przy listingu userow, jesli dany user ma dwie fotki, jego krotka pojawi sie 2 razy.
wydaje mi sie, ze w tabeli User powinien byc osobny klucz obcy identyfikujacy ta relacje 1-1? mozesz to potwierdzic?
         &lt;/blockquote&gt;
A próbowałeś? Na której wersji cake? Sprawdziłem na 1.3.2 i mam dwóch userów, pierwszy ma dwie fotki (jedna representative) drugi ma jedną (i jest representatice). Robiąc find(&quot;all&quot;) dostaję taki wynik:
&lt;pre&gt;
Array
(
    [0] =&gt; Array
        (
            [User] =&gt; Array
                (
                    [id] =&gt; 1
                    [name] =&gt; User 1
                )

            [RepresentativePhoto] =&gt; Array
                (
                    [id] =&gt; 2
                    [name] =&gt; photo 2
                    [user_id] =&gt; 1
                    [representative] =&gt; 1
                )

            [Photo] =&gt; Array
                (
                    [0] =&gt; Array
                        (
                            [id] =&gt; 1
                            [name] =&gt; photo 1
                            [user_id] =&gt; 1
                            [representative] =&gt; 0
                        )

                    [1] =&gt; Array
                        (
                            [id] =&gt; 2
                            [name] =&gt; photo 2
                            [user_id] =&gt; 1
                            [representative] =&gt; 1
                        )

                )

        )

    [1] =&gt; Array
        (
            [User] =&gt; Array
                (
                    [id] =&gt; 2
                    [name] =&gt; User 2
                )

            [RepresentativePhoto] =&gt; Array
                (
                    [id] =&gt; 3
                    [name] =&gt; photo 3
                    [user_id] =&gt; 2
                    [representative] =&gt; 1
                )

            [Photo] =&gt; Array
                (
                    [0] =&gt; Array
                        (
                            [id] =&gt; 3
                            [name] =&gt; photo 3
                            [user_id] =&gt; 2
                            [representative] =&gt; 1
                        )

                )

        )

)
&lt;/pre&gt;
Czyli wygląda ok.

Co do pola w tabeli User - tak, pod warunkiem, że dany user ma dokładnie 1 zdjęcie reprezentacyjne. Jeśli może mieć wiele - zostaje pole binarne representative.

Ale w tym kontekście to jest kwestia drugorzędna - chciałem pokazać pewien mechanizm.</description>
		<content:encoded><![CDATA[<blockquote cite="#commentbody-219"><p>
<strong><a href="#comment-219" rel="nofollow">kminek</a> :</strong><br />
          hmmm mam maly problem. jesli obok standardowej relacji User hasMany Photo dodam ta dodatkowa relacje tak jak mowisz (czyli User hasOne RepresentativePhoto), to przy listingu userow, jesli dany user ma dwie fotki, jego krotka pojawi sie 2 razy.<br />
wydaje mi sie, ze w tabeli User powinien byc osobny klucz obcy identyfikujacy ta relacje 1-1? mozesz to potwierdzic?
         </p></blockquote>
<p>A próbowałeś? Na której wersji cake? Sprawdziłem na 1.3.2 i mam dwóch userów, pierwszy ma dwie fotki (jedna representative) drugi ma jedną (i jest representatice). Robiąc find(&#8220;all&#8221;) dostaję taki wynik:</p>
<pre>
Array
(
    [0] =&gt; Array
        (
            [User] =&gt; Array
                (
                    [id] =&gt; 1
                    [name] =&gt; User 1
                )

            [RepresentativePhoto] =&gt; Array
                (
                    [id] =&gt; 2
                    [name] =&gt; photo 2
                    [user_id] =&gt; 1
                    [representative] =&gt; 1
                )

            [Photo] =&gt; Array
                (
                    [0] =&gt; Array
                        (
                            [id] =&gt; 1
                            [name] =&gt; photo 1
                            [user_id] =&gt; 1
                            [representative] =&gt; 0
                        )

                    [1] =&gt; Array
                        (
                            [id] =&gt; 2
                            [name] =&gt; photo 2
                            [user_id] =&gt; 1
                            [representative] =&gt; 1
                        )

                )

        )

    [1] =&gt; Array
        (
            [User] =&gt; Array
                (
                    [id] =&gt; 2
                    [name] =&gt; User 2
                )

            [RepresentativePhoto] =&gt; Array
                (
                    [id] =&gt; 3
                    [name] =&gt; photo 3
                    [user_id] =&gt; 2
                    [representative] =&gt; 1
                )

            [Photo] =&gt; Array
                (
                    [0] =&gt; Array
                        (
                            [id] =&gt; 3
                            [name] =&gt; photo 3
                            [user_id] =&gt; 2
                            [representative] =&gt; 1
                        )

                )

        )

)
</pre>
<p>Czyli wygląda ok.</p>
<p>Co do pola w tabeli User &#8211; tak, pod warunkiem, że dany user ma dokładnie 1 zdjęcie reprezentacyjne. Jeśli może mieć wiele &#8211; zostaje pole binarne representative.</p>
<p>Ale w tym kontekście to jest kwestia drugorzędna &#8211; chciałem pokazać pewien mechanizm.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kminek</title>
		<link>http://blog.grzegorzpawlik.com/2009/02/dobre-praktyki-programowania-w-cakephp-2/comment-page-1/#comment-219</link>
		<dc:creator>kminek</dc:creator>
		<pubDate>Thu, 28 Oct 2010 22:16:30 +0000</pubDate>
		<guid isPermaLink="false">http://meta.vipserv.org/blog.grzegorzpawlik.com/?p=53#comment-219</guid>
		<description>hmmm mam maly problem. jesli obok standardowej relacji User hasMany Photo dodam ta dodatkowa relacje tak jak mowisz (czyli User hasOne RepresentativePhoto), to przy listingu userow, jesli dany user ma dwie fotki, jego krotka pojawi sie 2 razy.
wydaje mi sie, ze w tabeli User powinien byc osobny klucz obcy identyfikujacy ta relacje 1-1? mozesz to potwierdzic?</description>
		<content:encoded><![CDATA[<p>hmmm mam maly problem. jesli obok standardowej relacji User hasMany Photo dodam ta dodatkowa relacje tak jak mowisz (czyli User hasOne RepresentativePhoto), to przy listingu userow, jesli dany user ma dwie fotki, jego krotka pojawi sie 2 razy.<br />
wydaje mi sie, ze w tabeli User powinien byc osobny klucz obcy identyfikujacy ta relacje 1-1? mozesz to potwierdzic?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: admin</title>
		<link>http://blog.grzegorzpawlik.com/2009/02/dobre-praktyki-programowania-w-cakephp-2/comment-page-1/#comment-15</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Sun, 21 Jun 2009 17:13:45 +0000</pubDate>
		<guid isPermaLink="false">http://meta.vipserv.org/blog.grzegorzpawlik.com/?p=53#comment-15</guid>
		<description>Masz rację, pominąłem pewną istotną rzecz. Prawdopodobnie powinno być 
$hasOne = array( &#039;RepresentativePhoto&#039; =&gt;
array(&#039;className&#039; =&gt; &#039;Photo&#039;,
&#039;conditions&#039; =&gt; &#039;RepresentativePhoto.representative = 1&#039;,

&#039;order&#039; =&gt; &#039;RAND&#039;
);
Chodzi o linię &#039;conditions&#039;=&gt; ... 
zamiast Photo powinno być ReprezentativePhoto, lub inaczej, jeśli inaczej nazwałeś tą relację.

Dzięki za słowa uznania, na pewno zmotywują mnie do częstszego publikowania :)</description>
		<content:encoded><![CDATA[<p>Masz rację, pominąłem pewną istotną rzecz. Prawdopodobnie powinno być<br />
$hasOne = array( &#8216;RepresentativePhoto&#8217; =><br />
array(&#8216;className&#8217; => &#8216;Photo&#8217;,<br />
&#8216;conditions&#8217; => &#8216;RepresentativePhoto.representative = 1&#8242;,</p>
<p>&#8216;order&#8217; => &#8216;RAND&#8217;<br />
);<br />
Chodzi o linię &#8216;conditions&#8217;=> &#8230;<br />
zamiast Photo powinno być ReprezentativePhoto, lub inaczej, jeśli inaczej nazwałeś tą relację.</p>
<p>Dzięki za słowa uznania, na pewno zmotywują mnie do częstszego publikowania :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Grzesiek</title>
		<link>http://blog.grzegorzpawlik.com/2009/02/dobre-praktyki-programowania-w-cakephp-2/comment-page-1/#comment-14</link>
		<dc:creator>Grzesiek</dc:creator>
		<pubDate>Fri, 19 Jun 2009 17:53:14 +0000</pubDate>
		<guid isPermaLink="false">http://meta.vipserv.org/blog.grzegorzpawlik.com/?p=53#comment-14</guid>
		<description>Hej,

piszesz fajne posty - jeden z lepszych blogow o Cake po polsku. Tak trzymac!

Swietna idea, aby dwie tabele polaczyc wiecej niz jedna relacja.  Przy czym najnowsza stabilna wersja Cake wywal mi sie na tej linii:

‘conditions’ =&gt; ‘Photo.representative = 1′

Jesli pomine nazwe modelu:

‘conditions’ =&gt; ‘representative = 1′

jest okej. Nie wiem, pewnie jakis bug.</description>
		<content:encoded><![CDATA[<p>Hej,</p>
<p>piszesz fajne posty &#8211; jeden z lepszych blogow o Cake po polsku. Tak trzymac!</p>
<p>Swietna idea, aby dwie tabele polaczyc wiecej niz jedna relacja.  Przy czym najnowsza stabilna wersja Cake wywal mi sie na tej linii:</p>
<p>‘conditions’ =&gt; ‘Photo.representative = 1′</p>
<p>Jesli pomine nazwe modelu:</p>
<p>‘conditions’ =&gt; ‘representative = 1′</p>
<p>jest okej. Nie wiem, pewnie jakis bug.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

