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つのチケットのみを返す必要があります。

前もって感謝します。

ライマン

ベストアンサー

このような:

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

Now call $this->paginate instead of $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')}"));

See http://book.cakephp.org/view/1232/Controller-Setup
and http://book.cakephp.org/view/1237/Custom-Query-Pagination

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です