【问题标题】:confusing routes on cakephpcakephp上令人困惑的路线
【发布时间】:2014-05-30 10:50:16
【问题描述】:

考虑两条路线:

路由器 A:

Router::connect('/site', array('prefix' => 'site', 'controller' => 'home', 'action' => 'index'));

路由器 B:

Router::connect('/:prefix/usuario/:action', array('controller' => 'usuarios'));

这个链接,//localhost/site/usuario/enderecos,在带有前缀的路由器 A 上工作,但不执行控制器主页,也不执行操作索引。它确实适用于路由 B,并且调用了控制器 usuarios。
这个链接 //localhost/site/usuario/endereco/156 与上面的链接与路由 A 的工作方式相同,但不适用于路由 B。因此它会抛出 404 NOT FOUND。
如果我在 Route B 的末尾加上 /*,它就可以工作。

我的问题:

1) 为什么对于以 /site 开头的任何链接,链接都与路由 A 一起使用,但第二个链接不与路由 B 一起使用。
2) 如果我在 Route A 的末尾放了一个 /*,那么所有与 /site 的链接都开始要求一个 home 控制器和一个 site_index 操作。为什么?

谢谢,

【问题讨论】:

    标签: cakephp routes


    【解决方案1】:

    前缀通常适用于admin 路由...因此,如果您的网址以“site”(位于您的“A”上)结尾,那么它将映射到site_index 上的HomesController 操作。

    阅读更多关于前缀路由-documentation

    【讨论】:

      猜你喜欢
      • 2020-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 2022-01-17
      • 2018-02-26
      • 1970-01-01
      相关资源
      最近更新 更多