如何对在symfony中加入的查询进行分页?我正在尝试这段代码,但它超时了:
$query=Doctrine_Query::create()
->select('c.name, d.phone')
->from('company c, companyDetails d')
->where('c.companyId=d.companyId');
$pager = new sfDoctrinePager('company',10);
$pager->setQuery($query);
$pager->setPage(1);
$pager->init();
$this->companys=$pager->getResults();
答案 0 :(得分:0)
你的paginator代码似乎很好。我的问题在于您的查询。
尝试在没有寻呼机的情况下运行它并查看结果。
如果您继续遇到查询问题,请尝试尝试。
$query=Doctrine_Query::create()
->select('c.name, d.phone')
->from('company c')
->innerJoin('c.companyDetails d');
我自己没有尝试过,但是如果您的架构关系是按照我的想法定义的话,它应该可以工作。
还有一件事,可能你已经知道了。
$pager->setPage(1);
应该是
$pager->setPage($request->getParameter('page', 1));
答案 1 :(得分:0)
我需要在分页中更改计数查询。要做到这一点:
$pager = new Doctrine_Pager($query,$request->getParameter('page',1),10);
$pager->setCountQuery('SELECT COUNT(id) FROM items WHERE city_id='.$city.' AND category_id='.$category);
$this->pager=$pager;
你唯一需要做的就是在你的分页助手中,使用:
$pagerRange = $pager->getRange('Sliding',array('chunk' => 5));
$pages = $pagerRange->rangeAroundPage();