CakePHPのPagenationでパラメータを追加したい場合は下記のようにします。
今回は下記のように、pagenationの「page:番号」に「id:番号」を追加してみます。
ドメイン名/index/page:5/id:1
コントローラー側でパラメータで使う値をセットします。
1 2 3 |
[コントローラー] $this->set("id",1);//View側で使う値をセット $this->set('data', $this->paginate()); |
コントローラー側でセットした値をビュー側でpagenatorにパラメータと値をセット
1 2 3 |
[ビュー] //$idという変数(コントローラー側でセットしたもの)が存在すれば、id:$id という形式でパラメータと値を追加 if($id != null){ $paginator->options(array('url' => array('id' =>$id))); }; |
pagenatorのページ番号をクリックしたとき、id:番号 のパラメータと値はコントローラーで以下のように受け取ることができます。
(page:1 のようなコロン付きのパラーメタは params[‘named’] で取得することができます)
1 2 |
[コントローラ] $this->params['named']['id']; |
まとめ
コントローラー部分をまとめてみます。
1 2 3 4 5 6 |
//idというパラメータが存在しない場合 $id=1; //idというパラメータが存在する場合 $id=$this->params['named']['id']; $this->set("id",$id);//View側で使う値をセット |
今回の例ですと
ドメイン名/index/page:1/id:1
ドメイン名/index/page:2/id:1
ドメイン名/index/page:3/id:1
というように、ページ番号が変わってもid:1をずっと持ち続けます。
このような形でページによって違うパラメータ・値を持たせたりすることができますね。
人気記事一覧
- MySQL 最大の値・最新の日付データを1つ抽出する方法(MAX)
- [CakePHP] XformHelperの使い方
- Linux: スワップファイル(swp)の削除方法
- HTMLのForm methodとactionについて
- PHPでカンマ区切りデータを配列に入れる方法 (explode)
- [エラー対処] failed to open stream: No such file or directory
- [CSS]ブロック要素(div)の高さを、内部のfloat要素に合わせて自動調整する
- [vsftp] FileZillaから接続できない場合の対処法
- PHP5.1→PHP5.3へバージョンアップする方法(CentOS)
- PHPでテキストを1行ずつ読み込む方法(file_get_contents,explode)