
CakePHPのPaginatorを使ったページリンクが正しく出力されません。
1ページ目は正しく出力できていますが、2ページ目などに移動した際にURLがおかしくなります。
現状
1ページ目
http://www.example.com/hoge/2
↓
2ページ目
http://www.example.com/hoge/2/page:3
理想
1ページ目
http://www.example.com/hoge/2
↓
2ページ目
http://www.example.com/hoge/3
また、パラメータがついた場合も
1ページ目
http://www.example.com/hoge/2?hoge=hoge
↓
2ページ目
http://www.example.com/hoge/3?hoge=hoge
となるようにしたいのですが、何を間違えているのでしょうか。
ちなみにソースは以下のようになってます。
View/Hoge.php
echo $this->Paginator->prev('< 前へ', array(), null, array('class' => 'prev disabled'));
echo $this->Paginator->numbers(array('separator' => ''));
echo $this->Paginator->next('次へ >', array(), null, array('class' => 'next disabled'));
Config/routes.php
Router::connect(
'/hoge/:page',
array(
'action' => 'hoge',
),
array(
'pass' => array(
'page',
)
)
);
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
いやいや、おかしくないですw
> 2ページ目
> http://www.example.com/hoge/2/page:3
page:3はCakePHPで言うnamedパラメータと呼ばれるものです。
コントローラで$this->request->params['named'] をダンプすると表示されます。
このnamedパラメータはCakePHPでは良く出てきます。
> 理想
確かにRouterを駆使したら出来るかもしれないけど、ページネーションはページ数だけ維持するとは限りません。
Bakeしたソースだと一覧(index)で表のタイトルをクリックしたらそのカラムで並べ替え(昇順/降順)が可能で、その並べ替えの状態を維持してページングを維持してますが、ソート対象のカラムや並び順もnamedパラメータに乗せてページ遷移してるから状態維持できるんですよ。
次のページに行ったらID順に戻ってたらページングにならんでしょ?
Routerに小細工するとそういうケースが出てきて行き詰まる要因になります。
やるとしてももうちょっと熟練されてからが良いかと。
> また、パラメータがついた場合も
?パラメータのことをQueryStringと言いますが、これはコントローラ側で設定します。
やり方は参考URLを参照してみて下さい。
> パラメータをクエリストリングで指定できるような設定もあるようだ。下記のようにparamTypeにquerystringを設定すると、「?page=2」のような指定で遷移した。
の箇所
参考URL:http://j-caw.co.jp/blog/?p=264
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA コレクションに2次元配列...
-
どういうプログラムを関数化を...
-
PHPでの画像の形式の変換
-
file_existsが動作しない
-
次のhtml・cssでspan内の文字を...
-
VB.NETからVBAマクロ(引数)を呼...
-
fwriteで改行出来ない
-
サブネットマスクを用いたIP制...
-
issetで変数の存在をチェックし...
-
【C#】DataGridViewの最大列数...
-
findstrのerrorlevel
-
VB6でDBからクリップボード経由...
-
URLのパラメータをGETのままで...
-
VB or VBScriptでPCの製造番号...
-
Dosブロンプトでtabを出力したい
-
SEOの観点からダイナミックDNS...
-
コンビニで住民票を取得した場...
-
Google scholarがひらけなくな...
-
(Win32)ファイルパスから物理ド...
-
開始と終了を指定して、その間...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA コレクションに2次元配列...
-
どういうプログラムを関数化を...
-
VB.NETからVBAマクロ(引数)を呼...
-
PHP正規表現の難題・preg_repla...
-
PHPの名前空間インポートについて
-
関数の入れ子ができない。
-
UNIX CP "で上書きしません"
-
配列の操作時にLNK2001外部シン...
-
number_formatが勝手に四捨五入
-
次のhtml・cssでspan内の文字を...
-
外部ファイル(テキスト)を取...
-
Let's Encryptで自動更新がされ...
-
可変変数にアロー演算子を使いたい
-
vb作成したらでbeep音が鳴りま...
-
CakePHPでの自作関数保存場所
-
正規表現に関する質問です。HTM...
-
String変数の文字列の検索方法
-
クラス内で上位クラス内メンバ...
-
Fatal error: Cannot use []
-
ExcelVBAで部分一致(*)をしたい
おすすめ情報