Ich verwende Symfony eigentlich nicht, aber wenn Sie eine auch nur annähernd aktuelle Version von Propel damit verwenden, haben Sie Zugriff auf den paginate()
Methode
was am Ende viel besser für Sie sein kann.
$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>";
}
}
Wenn Sie es wirklich auf Ihre Weise tun möchten, können Sie die Einschränkung durch ItemId vollständig aufheben und einfach einen Offset zusammen mit Ihrem Limit hinzufügen:
// 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);