2011-11-13 26 views
0

我有一个显示所有创建的门票我的票控制器上的代码登录的用户:如何从cakephp中查找结果来设置分页?

$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

像这样:

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

现在调用$这个 - >分页,而不是$这个 - >找到。

- 编辑包含条件以查找。

// 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

+0

,我认为我的问题是有点含糊,但我想真的是结果限制由用户创建的门票数量。例如,我创建了3张票,当我登录时应该只显示3张票(第1页,共1页,显示3条记录中的3条记录,从记录1开始,到3结尾)。你的代码仍然显示18条记录。 – Lyman

+0

你的问题是关于分页,而不是模型关联。编辑我的答案,包括更正的条件... – OpenSorceress

+0

对不起,但你错过了那一行的东西?我得到一个分析错误:语法错误,意外的';'在第20行的\ app \ Controller \ TicketsController.php中。 – Lyman