我正在使用 Cakephp 2+,并且我有一个名为“帖子”的模型,帖子可以是不同的类型,例如 - 博客帖子、消息等。
在config/routes.php中,如何设置我的路由以便我拥有/posts/12/post-title
or /blog/14/blog-title
?
目前我有这个:
Router::connect('/:type/add', array('controller' => 'posts', 'action' => 'add'),
array('pass' => array('type')));
Router::connect('/:type/:action', array('controller' => 'posts'),
array('pass' => array('type')));
# Custom posts router
Router::connect('/:type/:id/:slug',
array('controller' => 'posts', 'action' => 'view'),
array('pass' => array('type', 'id', 'slug'), 'id' => '[0-9]+'));
但问题是这随后用于每个 URL,所以 cakephp 认为我的用户个人资料页面应该查看我的帖子控制器,因为它认为我正在传递一个 :type -
...
#View Profile
Router::connect('/profile/:id', array('controller' => 'users', 'action' => 'view'),
array('pass' => array('id'), 'id' => '[0-9]+'));
有谁知道正确执行此操作的方法?非常感谢