1

同じテンプレートで複数のページネーションを取得したい。テンプレートファイルファイルの2つの異なる場所でページ分割するために、2つの異なるモデルを照会しています。ご想像のとおり、両方のページネーションのいずれかの次のページをクリックすると、両方のモデルが次のページの値をフェッチします。十分な調査を行い、オンラインで入手できるさまざまな解決策を試しましたが、どれも機能しませんでした。私はそれらを正しく使用していないかもしれません。

ページ番号を静的に設定できれば、それを機能させることができることがわかりました。

のように設定したい

「ページ」=>1

そのように設定できることはわかっています。しかし、次のようなURLにパラメータがある場合

...../ページ2/....

指定した値をオーバーライドしています。URL 経由で送信されたものに関係なく、指定した番号のページを取得する方法はありますか?

ありがとうございました

4

3 に答える 3

8

2 提案

まず、次のように URL パラメータのページ番号を上書きできます。

$this->request->params['named']['page'] = YOUR_FAVORITE_INTEGER;

これに関する問題は、ページ上の URL に古い:page値が設定されたままになることです。

もう 1 つの方法は、同じコントローラー アクションにリダイレクトすることですが、別のページ番号が設定されています (または、必要に応じてページ番号が設定されていません)。

$this->redirect(array('action' => 'whatever', 'page' => YOUR_FAVORITE_INTEGER));

必要な場合に備えて、リダイレクトの作成に関するドキュメントを次に示します: http://api.cakephp.org/class/router#method-Routerurl

于 2012-06-01T16:51:37.380 に答える
1

追加してみてください:

$this->Paginator->settings['Model1']['page']=YourFavInteger;
$this->Paginator->settings['Model2']['page']=YourFavInteger;

$this->Paginator->paginate('Model1');
$this->Paginator->paginate('Model2');

あなたのコントローラに。

于 2015-01-28T22:06:48.970 に答える
1

もっと簡単に言えば、私はこれを使って Cake 1.3 で作業しました。2.xで動作するかどうかは不明

コントローラーで:

$this->paginator['page']= YOUR_FAVORITE_INTEGER;

これまでのところ、検出された問題はありません。

于 2014-09-16T09:16:06.093 に答える