I am also interested in this answer. I just started learning cakephp, and 2.0 is what I'm starting on. If there is an example app I can download with a database and browse it's code, I would be appreciative of that as well. I had the same complication as andrew, and I did it another way, and it was creating two queries, one with the search filter and one without it.
On Sat, Oct 29, 2011 at 1:27 PM, andrewperk <[email protected]> wrote: > Hello, > > I've implemented a user model and I have a simple search form for > searching by gender, age, location. I'm using the paginator to > paginate the results. The problem is that it's only remembering the > search criteria on the first page. When I click on page 2, or next > etc.. It defaults back to searching all users. > > Here's my dirty search code in my controller, basically it just checks > the submitted form fields and does a query on the matching field in > the Users table and then paginates the results: > > if (!empty($this->data)) { > // by name > if (!empty($this->data['User']['search_name'])) { > $this->paginate = array('conditions' => array('visible'=>1, > 'OR'=>array( > 'User.username LIKE' => > '%'.$this->data['User']['search_name'].'%', > 'User.firstname LIKE' => > '%'.$this->data['User']['search_name'], > 'User.lastname LIKE' => > '%'.$this->data['User']['search_name']) > ), 'limit'=>'10', 'order'=>'User.username'); > } > // by gender > else if (!empty($this->data['User']['search_gender'])) { > $this->paginate = array('conditions' => array( > 'visible'=>1, > 'User.gender' => $this->data['User']['search_gender'] > ), 'limit'=>'10', 'order'=>'User.username'); > } > // by state > else if (!empty($this->data['User']['search_state'])) { > $this->paginate = array('conditions' => array( > 'visible'=>1, > 'User.state' => $this->data['User']['search_state'] > ), 'limit'=>'10', 'order'=>'User.username'); > } > > // Send the results for the above criteria to the view > $results = $this->paginate('User'); > $this->set('users', $results); > > } > // Default retrieval of all users > else { > $this->paginate = array('conditions'=>array('visible'=>1), > 'limit'=>'10', 'order'=>'User.username'); > $this->set('users', $this->paginate('User')); > } > > I'm trying to figure out how to make subsequent pages of the > pagination remember my search criteria. Thanks for any help. > > -- > Our newest site for the community: CakePHP Video Tutorials > http://tv.cakephp.org > Check out the new CakePHP Questions site http://ask.cakephp.org and help > others with their CakePHP related questions. > > > To unsubscribe from this group, send email to > [email protected] For more options, visit this group > at http://groups.google.com/group/cake-php > -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/cake-php
