(我知道这个站点上还有几个其他的反向路由问题,但我不太幸运地将答案与我的特定问题联系起来,所以我会问我更具体的问题……)
我正在构建一个网站,它的URL现在需要是基于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格式?或者,在这一点上,我必须减少损失并放弃反向路由吗?
发布于 2011-03-28 12:19:09
这里有一个相当不错的插件来处理基于slug的路由:https://github.com/jeremyharris/slugger
如果您使用它,您将能够创建如下所示的链接
$html->link("some item", array(
'controller'=>'items',
'action'=>'view',
'Item'=>$item['id']
));这将输出一个指向/items/view/slug-for-your-item的链接
https://stackoverflow.com/questions/5444512
复制相似问题