【发布时间】:2013-01-18 05:54:52
【问题描述】:
我使用的是 Cakephp 2+,我有一个名为“posts”的模型,并且帖子可以是不同的类型,例如 - 博客帖子、消息等。
在 config/routes.php 中,如何设置我的路由,以便拥有/posts/12/post-title 或/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]+'));
有人知道正确执行此操作的方法吗?非常感谢
【问题讨论】:
标签: php cakephp url-rewriting routing