-
CakePHPでcondition付きのpaginate
投稿 6 2011年7月 by in 開発日誌 with 0 comments
Mac OS X Lion 早くこないかなー。
teruchiです。(下記内容はCakePHP 1.3.7で確認)
CakePHPのPginatorはModelが組み込まれてる状態なので、
簡単に扱える反面、カスタマイズが難しい。なんかのリストをステータスごとに絞り込みたい時、
社内用の管理画面であればこんな感じで書いてます。まずViewではPaginator::link()を使って
=$this->Paginator->link('全て', array('status' => ''))?>
=$this->Paginator->link('公開中', array('status' => 1))?>
=$this->Paginator->link('公開停止中', array('status' => 2))?>
=$this->Paginator->link('削除済み', array('status' => 9))?>
としてあげます。
これでページやソート条件が勝手にリンクにつくようになります。あとはコントローラー側で、
$this->paginate = array('order' => array('created' => 'DESC'));// 検索条件
if(!empty($this->params['named']['status'])) {
$this->paginate['conditions']['status'] = $this->params['named']['status'];
}$this->set('books', $this->paginate());
な感じで書いてあげれば条件付きで検索されます。では今月も良いコードを。
コメント
Top