我有以下自定义路线(效果很好):
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 页。
第二个问题是我没有得到 Pagination Helper 来写上面的链接。如果我在我看来尝试这个:
$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));
仍然没有运气,如果有人可以提供帮助,我会非常高兴!