ログインしたユーザーによって作成されたすべてのチケットを表示するチケットコントローラーにコードがあります。
$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