0

我的票控制器上有一个代码,显示登录用户创建的所有票:

 $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 张票。

提前致谢。

莱曼

4

1 回答 1

1

像这样:

// 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-Setuphttp://book.cakephp.org/view/1237/Custom-Query-Pagination

于 2011-11-13T03:19:53.777 回答