次のカスタムルートがあります(これは正常に機能します)。
Router::connect('/:city', array('controller' => 'dealers', 'action' => 'index'), array('city' => '[a-z]+'));
このルートで、私はページ2、3、…を取得しようとしています。
Router::connect('/:city/:id', array('controller' => 'dealers', 'action' => 'index'),
array(
'pass' => array('city', 'id'),
'city' => '[a-z]+',
'id' => '[0-9]+'
)
);
ここでの最初の問題は、 domain.com /washington / 2と入力すると、IDがPaginationに渡されず、ページ1が表示されることです。
2番目の問題は、PaginationHelperに上記のリンクを記述させられないことです。私の見解でこれを試してみると:
$this->Paginator->options(array
('url'=> array(
$city[0]['City']['url'],
$this->params['id']
)
)
);
それはまだ私に与えます:
http://domain.com/dealers/index/washington/page:2
これが簡単なことではない場合は事前に謝罪しますが、私はこれに不慣れであり、ここで利用可能な質問/回答、またはドキュメントでそれを理解することができませんでした。
更新1:
domain.com/washington/page/2に対して次のことを試しましたが、ページ付けページ1にルーティングされるだけです。
Router::connect('/:city/:slug/:id',
array('controller' => 'dealers', 'action' => 'index'),
array(
'pass' => array('city', 'slug', 'id'),
'city' => '[a-z]+',
'slug' => '[a-z]+',
'id' => '[0-9]+'
)
);
アクションでは、私はこれを行っています:
public function index($slug = null, $id = null) {some code}
私が追加したビューで:
$this->Paginator->options(array('url' => $this->passedArgs));
それでも運が悪いので、誰かが助けてくれたらとても嬉しいです!