2017-01-30 8 views
0

ビューテンプレートのナビゲーションのためにページネーターをハイジャックすることができますか?ビューテンプレートのナビゲーションにページャーを使用する

私は現在ページあたり1行のページ設定機能を持っています。私は現在のビューを指し示すようにURLを変更したいが、:page querystringパラメータの代わりにPK行を使用したい。ページネータのURLで

  1. まず、訪問のモデル/ビュー/ 5
    • 次のリンク、モデル/ビュー/ 6
    • 前のリンクに行くと、モデルに行くだろう//4
    • ページングされたリンクを表示、モデル/ビュー/ X
に行くだろう

これは可能ですか?この方法で改ページURLを書き換えることはできますか?

答えて

0

これは可能です。ページネータヘルパーはリンクを生成するときに、URL配列にpageという名前のキーを経由してページ番号を設定しますので、これは、必要とされる

Router::connect('/model/view/:page', [ 
    'controller' => 'Models', 
    'action' => 'view' 
]); 

:まず、あなたは次のように、pageという名前のルート要素を使用する適切な経路を必要とします。ルートにその名前の要素がない場合、値はクエリ文字列で終了します。 page要素が渡されるようにマークすることも重要です。そうしないと、paginatorヘルパーが生成するURL配列に値が入り込み、それがあなたのルートにもう一致しなくなります。

あなたがする必要があるもう一つのことは、ページジェネレータコンポーネントが要求されたページ番号にアクセスできることを確認することです。デフォルトでは、コンポーネントは要求クエリ文字列変数かページ設定オプションのいずれかから値を読み取ります。カスタム・コンポーネント、または拡張ページネータコンポーネントでこれを移動することができ、何かもっとドライについて

$page = $this->request->param('page'); 
if ($page !== null) { 
    $this->paginate['page'] = $page; 
    // or 
    $this->request->query['page'] = $page; 
} 

// ... 

$result = $this->paginate(); 

:だから、たとえばコントローラでは、あなたのような何かを行うことができます。

+0

HRM ...追加するパラメータ、および複数のレコードをなってきて、ページ番号と、それは次のようになり、今は不可能を参照してください。ブックマークして同じデータを期待していますか?私はそれについてもっと考えると、これはもっと実用的ではないようです。 URLの末尾にレコードのPKを提供しながら、ページ作成の中からリンクを構築することができればうれしいです。 – TekiusFanatikus

+0

ブックマークがサポートしたいものなら、これは適切な溶液、プライマリキーやそのカラムのページ化は、組み込みペジネータの範囲外で、元の質問とは非常に異なる作業です。 @テキウスファナティカス – ndm

関連する問題