sfDoctrinePagerの実装

sfDoctrinePagerを使ってPagerを実装する方法です。Doctrine Queryの参考にもなるかな。

$q = Doctrine_Core::getTable('Article')->createQuery('a')->where('a.url like ?', '%comment%');
$this->pager = new sfDoctrinePager('Article', 5);
$this->pager->setQuery($q);
$this->pager->setPage($request->getParameter('page', 1));
$this->pager->init();
$this->articles = $this->pager->getQuery()->fetchArray() ;

foreach($articles as $article){
	print_r($article);
}
echo ' <p><a href="'.url_for('feeds/read?page='.$pager->getPreviousPage()).'" />Previous</a></p> ';
echo ' <p><a href="'.url_for('feeds/read?page='.$pager->getNextPage()).'" />Next</a></p> ';
if($pager->haveToPaginate()) echo $pager->getPage() . '/' .$pager->getLastPage();

Doctrineについて(PagerとQueryについて)
http://www.doctrine-project.org/documentation/manual/1_2/nl/utilities
http://www.symfony-project.org/doctrine/1_2/ja/06-Working-With-Data