【问题标题】:How to change articles/view/slug to articles/slug in CakePHP with Routing如何使用路由在 CakePHP 中将文章/视图/slug 更改为文章/slug
【发布时间】:2011-10-06 09:25:34
【问题描述】:

我想在我的 CakePHP 应用程序上设置一个路由来完成以下任务:

  • 我的应用设置为使用通常生成地址的 Slugs

http://www.domain.com/articles/view/my-favorite-cakephp-application

  • 但是,我希望地址显示为

http://www.domain.com/articles/my-favorite-cakephp-application

我怎样才能使用路由来实现这一点。

谢谢!

【问题讨论】:

    标签: cakephp routes


    【解决方案1】:

    在 routes.php 中

    路由器::连接( '/文章/*', 数组('控制器' => '文章','动作' => '视图') );

    【讨论】:

    • 这不起作用,因为它会尝试路由那里的任何东西。例如,如果我有mydomain.com/articles/index,它会将其发送到mydomain.com/articles/view,然后再次发送到mydomain.com/articles/view,从而导致无限循环。
    • 如果您有其他方法(索引、添加等),只需在此之前为它们添加路由。例如:Router::connect( '/articles/', array('controller' => 'articles', 'action' => 'index') );Router::connect( '/articles/add/*' , array('controller' => 'articles', 'action' => 'add') );Router::connect( '/articles/*', array('controller' => 'articles', 'action' = > '查看') );如果使用前缀,还需要为它们添加规则。
    • 是的,那太复杂了。但是,我不得不说你非常接近。我能够根据以下帖子解决此问题:stackoverflow.com/questions/5109461/…。根据这个人的建议,我将路线更改为Router::connect('/article/*',array('controller' => 'articles', 'action' => 'view'));。您唯一错过的是链接中的控制器必须是单数的(article 而不是articles)。不过很棒....
    猜你喜欢
    • 2020-08-31
    • 2019-07-10
    • 2011-01-25
    • 2015-04-04
    • 2020-02-07
    • 2016-03-06
    • 2011-09-07
    • 2023-03-09
    • 1970-01-01
    相关资源
    最近更新 更多