(我知道在这个网站上还有其他几个反向路由问题,但是我对于我的特定问题的答案没有太多运气,所以我会问我更具体的问题......)
我正在建立一个网站,其网址现在需要以slug为基础,即最初的news / item / 1现在必须拥有URL news / firstnewsitem。等等其他一些控制器。我可以轻松地使这些地址起作用,甚至可能不会踩到我现有的实用程序操作,例如:
Router::connect('/:controller/:slug',
array('action'=>'item'),
array('pass'=>array('slug'), 'slug'=>'[^(index|add|edit|view|delete)]')
);
但是,这些新链接的反向路由似乎不是首发:Cake仍然会生成诸如news / item / 3之类的链接。希望基于slug的URL会自动发生似乎很乐观,但是我可以在我的Html->链接参数中传递任何数组,这些参数将创建我正在寻找的:controller /:slug格式吗?或者我是否必须减少损失并在此时退回反向路由?
答案 0 :(得分:1)
这里有一个非常不错的插件来处理基于slug的路由: https://github.com/jeremyharris/slugger
如果你使用了这个,你就可以创建类似这样的链接
$html->link("some item", array(
'controller'=>'items',
'action'=>'view',
'Item'=>$item['id']
));
这将输出指向/ items / view / slug-for-your-item
的链接