Tuesday, November 4, 2014

Re: Handling pagination past the end of the result set

Hi

Ive done this in Cake 2.5. Ive put all the pagination logic into a component and there is one function which checks for last page:

// Check if results are outside the current page stored in session (to prevent NotFound error)
private function __checkLastPage($conditions = array(),$contain = array()) {
$count = $this->Controller->{$this->modelClass}->find('count',array('conditions' => $conditions,'contain' => $contain));
$lastPage = ceil($count / Configure::read('Config.paginateLimit'));
if (empty($lastPage)) {
$lastPage = 1;
}
if (empty($this->Controller->request->params['named']['page'])) {
$this->Controller->request->params['named']['page'] = 1;
}
if ($lastPage < $this->Controller->request->params['named']['page']) {
$this->Controller->request->params['named']['page'] = $lastPage;
}
}


This should give you an idea. Have fun!

Frank


Am Samstag, 1. November 2014 17:20:05 UTC+1 schrieb Rob Cowie:
Hi all, and have added filtering code to my app (cakephp3) and all is great. The only problem I have is catching when the results set gives us less pages than the user is on (ie, user sets a filter whilst on page 9, but the resulting set only fills 3 pages). I am catching the exception, but do not know the correct way to change the page I am going to display in the controller. can any one help?

--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

No comments: