CakePHP-ja tumblr

Nov 21 2009

ページングのURL構造を維持してリンク作成

ページングで一覧するコントローラに絞込み機能などを追加しようと考えた場合、ソートなどページングに関連する URL の状態を崩したく無いのでベースとなる URL をとりあえず維持しておく。

$baseUrl = array_merge( array( 'controller' => $this->params['controller'], 'action' => $this->params['action'] ), $this->params['named'] );

リンク作る場合はこんな感じ

e( $html->link( 'Anchor text', array_merge( $baseUrl, array( 'refine' => 'name:hoge' ) ) ) );

コントローラでこう解釈すればいい

$column = $value = null;
list( $column, $value ) = explode( ':', $this->params['named']['refine'] );
$this->set( 'data', $this->paginate( array( $column => $value ) ) );

Page 1 of 1