2012-01-18 67 views
1

我在推进在行走分页:查询与标准

$units = UnitQuery::create()->find(); 

我想分页的结果返回此查询,所以我想我需要使用PropelPager,而根据文档创建一样这

$criteria = new Criteria(); 
$criteria->add(BookPeer::AUTHOR, $authorId); 
$pager = new PropelPager($criteria, 'BookPeer', 'doSelect', $page = 1, $rowsPerPage = 30); 

我不明白的是如何在1号线$units查询我通常使用,以$criteria转换。

另外,有没有办法使用正常的查询,如$unitsPropelPager?它会更容易比更改查询使用$criteriadoSelect

回答

6

你可以简单地这样做:

$units = UnitQuery::create() 
    ->filterByStuff($stuff) 
    ->paginate($page = 1, $rowsPerPage = 30); 

如果你真的想用一个自定义的寻呼机(但你可能不):

$query = UnitQuery::create()->filterByStuff($stuff); 
$pager = new MyModelPager($query, $rowsPerPage = 30); 
$pager->setPage($page = 1); 
$pager->init(); 

顺便说一句,行走XXXQuery类只是对类固醇的标准;)

0

由PAGINATE方法创建的寻呼机是一个实例ö f PropelModelPager是一个完全不同的类(符合不同的接口)到PropelPager。

由于Query对象扩展了Criteria,所以我们也可以使用PropelPager,因为我们使用了PropelPager的子类,它在其他事物中添加了缓存。

$ unitQuery = UnitQuery :: create();

$ pager = new PropelPager($ unitQuery,'UnitPeer','doSelect',$ page = 1,$ rowsPerPage = 30);