2011-11-13 1 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 
        ) 
       ); 

今すぐ検索する>>の$ this - を呼び出す代わります$ this-のページ付け。

- 検索条件を含めるように編集する。

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

申し訳ありませんが、あなたはその行に何かを見逃しましたか?私は構文解析エラーを受け取ります:構文エラー、予期しない ';' \ app \ Controller \ TicketsController.php 20行目。 – Lyman

関連する問題