Saya sebenarnya tidak menggunakan Symfony, tetapi jika Anda menggunakan Propel versi terbaru dari jarak jauh, maka Anda memiliki akses ke paginate()
metode
yang pada akhirnya mungkin jauh lebih baik untuk Anda.
$pager = CartQuery::create()
->filterByCategory($category)
->orderBy(CartPeer::ITEM_NAME)
->paginate($pageToLoad, $resultsPerPage);
foreach($pager as $result) {
// do something with the record
}
if ($pager->haveToPaginate()) {
// build some paging items using PropelModelPager methods:
if (!$pager->isFirstPage()) {
echo "<a href='?page=".$pager->getPreviousPage()."'>Previous</a>";
}
if (!$pager->isLastPage()) {
echo "<a href='?page=".$pager->getNextPage()."'>Next</a>";
}
}
Jika Anda benar-benar ingin melakukannya dengan cara Anda, Anda mungkin ingin menghilangkan pembatasan oleh ItemId sepenuhnya dan cukup tambahkan offset bersama dengan batas Anda:
// This will be however many results have already been shown (page size?)
$offset = 10;
$c = new Criteria();
$c->add(CartPeer::CATEGORY, $category);
$c->addAscendingOrderByColumn(CartPeer::ITEM_NAME);
$c->setOffset($offset);
$this->next = CartPeer::doSelectOne($c);