CakePHP の Paginator に独自にパラメータを追加する
2010-9-26 00:16
CakePHP で簡単にページング処理を実現してくれる Paginator ヘルパーは、ソート順やページ番号などのパラメータを URL に名前付き引数として渡す仕組みになっています。たとえば
http://localhost/hoge/foo/index/page:1/sort:name/direction:desc
のような URL を勝手に作ってくます。
この URL に独自の引数を加えたい場合などがあります。たとえば検索結果のページング処理などでは、次のように検索文字列を加えた URL を期待します。
http://localhost/hoge/foo/index/query:%E3%83%86%E3%82%B9%E3%83%88/page:1/sort:name/direction:desc
これを実現するためには、Paginator ヘルパーの options()
メソッドに引数を渡します。この時に配列の形で渡さないとならないのではまりました。
これで $paginator->sort()
や $paginator->next()
などのメソッドで、こちらが指定したパラメータが組み込まれるようになります。
ただし、手動で URL を組み立てるために $paginator->url()
メソッドを呼んだ場合は、options()
で指定した値が無視されてしまうようです。(CakePHP 1.3.3 で確認。)
url()
で使う場合は引数にこれらの値を渡す必要があります。
$url = $paginator->url('query' => urlencode($query));
このときは 'url' => array()
は必要ありません。ここも知らないとハマりますね。
コメントはまだありません
No comments yet.
Sorry, the comment form is closed at this time.