2011-11-13 31 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