<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Code42 &#187; criteria</title>
	<atom:link href="http://code42.pl/tag/criteria/feed/" rel="self" type="application/rss+xml" />
	<link>http://code42.pl</link>
	<description>Wielkie Pytanie o Życie, Kod i całą resztę</description>
	<lastBuildDate>Wed, 25 Jan 2012 14:16:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Symfony: Paginacja przy własnych/nietypowych warunkach SQL</title>
		<link>http://code42.pl/2009/01/05/symfony-paginacja-przy-wlasnychnietypowych-warunkach-sql/</link>
		<comments>http://code42.pl/2009/01/05/symfony-paginacja-przy-wlasnychnietypowych-warunkach-sql/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 17:42:13 +0000</pubDate>
		<dc:creator>zergu</dc:creator>
				<category><![CDATA[Symfony]]></category>
		<category><![CDATA[criteria]]></category>
		<category><![CDATA[propel]]></category>

		<guid isPermaLink="false">http://code42.pl/?p=137</guid>
		<description><![CDATA[Pobieranie obiektów bez wykorzystywania obiektu klasy Criteria jest dość proste. Jednak standardowy paginator w Symfony ma taką właściwość, że jako parametr przyjmuje obiekt tejże klasy. Stwarza to trochę problemów, gdy odpytujemy bazę w niezbyt typowy sposób, a chcemy podzielić wyniki na strony. Przykład: w wyszukiwarce sprawdzamy czy połączone kolumny pasują do podanej frazy. Prawdę mówiąc nie [...]


Podobne wpisy:<ol><li><a href='http://code42.pl/2010/05/12/formularze-symfony-select-ograniczony-przez-wartosc-innego-pola/' rel='bookmark' title='Formularze Symfony: select ograniczony przez wartość innego pola'>Formularze Symfony: select ograniczony przez wartość innego pola</a></li>
<li><a href='http://code42.pl/2010/07/09/symfonypropel-domyslne-sortowanie/' rel='bookmark' title='Symfony+Propel: domyślne sortowanie'>Symfony+Propel: domyślne sortowanie</a></li>
<li><a href='http://code42.pl/2008/12/15/migracja-mysql%c2%a0%e2%86%92-postgresql-aplikacji-w-symfony-11/' rel='bookmark' title='Migracja MySQL → PostgreSQL aplikacji w Symfony 1.1'>Migracja MySQL → PostgreSQL aplikacji w Symfony 1.1</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://code42.pl/wp-content/uploads/book-pages-536x239.jpg" alt="" title="book-pages" width="536" height="239" class="aligncenter size-medium wp-image-685" /></p>
<p>Pobieranie obiektów bez wykorzystywania obiektu klasy <code>Criteria</code> jest dość proste. Jednak standardowy paginator w <a href='http://www.symfony-project.org/'>Symfony</a> ma taką właściwość, że jako parametr przyjmuje obiekt tejże klasy. Stwarza to trochę problemów, gdy odpytujemy bazę w niezbyt typowy sposób, a chcemy podzielić wyniki na strony. Przykład: w wyszukiwarce sprawdzamy czy połączone kolumny pasują do podanej frazy.</p>
<p>Prawdę mówiąc nie wiem jak to zrobić w <a href='http://propel.phpdb.org/'>Propelu</a> 1.2 (tym samym Symfony < 1.2), jednak w wersji 1.3 jest już na to sposób dzięki <code>Criteria::CUSTOM</code>. Przykładowo:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$c</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Criteria<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$c</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add</span> <span style="color: #009900;">&#40;</span>CarPeer<span style="color: #339933;">::</span><span style="color: #004000;">BRAND</span><span style="color: #339933;">,</span>
         CarPeer<span style="color: #339933;">::</span><span style="color: #004000;">BRAND</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;||' '||&quot;</span><span style="color: #339933;">.</span>CarPeer<span style="color: #339933;">::</span><span style="color: #004000;">MODEL</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' ILIKE \'%'</span><span style="color: #339933;">.</span><span style="color: #000088;">$phrase</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'%\''</span><span style="color: #339933;">,</span>
         Criteria<span style="color: #339933;">::</span><span style="color: #004000;">CUSTOM</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
…
<span style="color: #000088;">$pager</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setCriteria</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$c</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>code<span style="color: #339933;">&gt;</span></pre></div></div>

<p>Rzeczą, na którą koniecznie trzeba zwrócić uwagę, jest podanie dowolnej kolumny (pierwszy parametr), mimo że nie będzie ona wykorzystywana. Jako drugi parametr podajemy już dokładnie to, co ciężko było normalnie zbudować wykorzystując propelowe kryteria (może to być fragment czystego <code>SQL</code> występującego po klauzuli <code>WHERE</code>). Ostatni parametr jest narzucony i służy do aktywowania całej „magii”.</p>


<p>Podobne wpisy:<ol><li><a href='http://code42.pl/2010/05/12/formularze-symfony-select-ograniczony-przez-wartosc-innego-pola/' rel='bookmark' title='Formularze Symfony: select ograniczony przez wartość innego pola'>Formularze Symfony: select ograniczony przez wartość innego pola</a></li>
<li><a href='http://code42.pl/2010/07/09/symfonypropel-domyslne-sortowanie/' rel='bookmark' title='Symfony+Propel: domyślne sortowanie'>Symfony+Propel: domyślne sortowanie</a></li>
<li><a href='http://code42.pl/2008/12/15/migracja-mysql%c2%a0%e2%86%92-postgresql-aplikacji-w-symfony-11/' rel='bookmark' title='Migracja MySQL → PostgreSQL aplikacji w Symfony 1.1'>Migracja MySQL → PostgreSQL aplikacji w Symfony 1.1</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://code42.pl/2009/01/05/symfony-paginacja-przy-wlasnychnietypowych-warunkach-sql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

