【问题标题】:Reverse Routing Slug-Based URL in CakePHPCakePHP 中的反向路由基于 Slug 的 URL
【发布时间】:2011-07-23 14:30:19
【问题描述】:

(我知道这个网站上还有一些其他的反向路由问题,但我没有太多运气来回答我的特定问题,所以我会问我更具体的问题......)

我正在构建一个站点,其 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->link 参数中传递任何数组来创建我正在寻找的 :controller/:slug 格式吗?还是我现在必须减少损失并退出反向路由?

【问题讨论】:

    标签: cakephp routes url-routing slug


    【解决方案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 的链接

    【讨论】:

      猜你喜欢
      • 2011-07-03
      • 2011-09-07
      • 1970-01-01
      • 1970-01-01
      • 2012-02-09
      • 2016-05-11
      • 1970-01-01
      • 2012-03-04
      • 2017-06-02
      相关资源
      最近更新 更多