CakePHP 2.1.3でページネーションを使用するときに必要な正確なURLを取得するのに問題があります。これは、カスタムルートと同じである必要があります。これが私が持っているものの例です:
URL: /courses/section-name/cat-name/subcat-name
私のルート:
Router::connect('/courses/:section/:cat/:subcat/*', array(
'controller' => 'courses', 'action' => 'courseCategory'), array(
'pass' => array('section', 'cat', 'subcat'),
'section' => '[a-zA-Z0-9_-]+',
'cat' => '[a-zA-Z0-9_-]+',
'subcat' => '[a-zA-Z0-9_-]+'
));
この形式を使用した通常のナビゲーションではすべてが正常に機能し、ページにアクセスすると、すべてのリンクなどでページ化された結果が得られます。PaginatorHelperの「オプション」を次のように設定しました。
$this->Paginator->options(array('url'=>$this->passedArgs));
ただし、これにより、たとえば:のようなURLが生成されますが、/courses/courseCategory/section-name/cat-name/subcat-name/page:2
これは機能しません。
アクション名' courseCategory 'をURL(例:/courses/section-name/cat-name/subcat-name/page:2
etc)から手動で削除すると、すべてが正常に機能し、結果の関連ページに移動するので、近いと思いますか?しかし、何時間も検索し、docs / APIを読み、さまざまなことを試した後、コントローラーのアクションなしではURLリンクを表示できず、今では私を怒らせています!
だから、問題は私がどこで間違っているのか、誰かがこれに対する代替の解決策を持っているのかということだと思います。
必要に応じて、より多くの情報を提供していただければ幸いです。
ありがとう :)