Как установить нумерацию страниц по результатам поиска в cakephp? - PullRequest
0 голосов
/ 13 ноября 2011

У меня на контроллере билетов есть код, который отображает все заявки, созданные вошедшим в систему пользователем:

 $this->set('tickets',$this->Ticket->find('all',array('conditions'=>array('user_id'=>$this->Auth->user('id')))), $this->paginate());

Возвращает правильные результаты, однако в моей нумерации страниц (при просмотре страницы индекса) отображаются все заявки, созданные всеми пользователями (Страница 1 из 1, показаны 18 записей из 18, начиная с записи 1 и заканчивая 18 ). Приведенный выше код должен возвращать только 3 билета при просмотре страницы индекса.

Заранее спасибо.

Лиман

1 Ответ

1 голос
/ 13 ноября 2011

Как это:

// Contoller - define pagination settings
     var $paginate = array(
                'Tickets'=>array(     
                     'limit' => 3, 
                     'order' => array( 'User.id' => 'asc' ) // or whatever
                     )
                  );

Теперь вызовите $ this-> paginate вместо $ this-> find.

- Редактирование, чтобы включить условия для поиска.

// The second argument takes your conditions. Model.field syntax is preferable.
$this->set('tickets', $this->paginate('Tickets', array("Tickets.user_id = {$this->Auth->user('id')}"));

См. http://book.cakephp.org/view/1232/Controller-Setup и http://book.cakephp.org/view/1237/Custom-Query-Pagination

...