【问题标题】:Phalcon routing behaviour - redundant routes?Phalcon 路由行为 - 冗余路由?
【发布时间】:2013-10-10 23:11:37
【问题描述】:

我正在使用以下路由示例:

https://github.com/phalcon/mvc/blob/master/simple-subcontrollers/app/config/routes.php

谁能给我解释一下为什么第 12 行有这个:

$router->add('/:controller', array(...

我们不是已经将第 5 行的路线定义为:

$router->add('/:controller/:action/:params', array(

"/:controller" 是 '/:controller/:action/:params' 的子集。

如果您删除“/:controller”路由,则以控制器名称结尾的 URL 将不匹配。

为什么路由器不回退到我可以指出的默认操作名称:

$router->setDefaultAction('index');

这是错误还是功能?

谢谢!

【问题讨论】:

  • 答案澄清了吗?

标签: php phalcon


【解决方案1】:

这条路线

$router->add('/:controller/:action/:params', array(

仅当它获取所有部分以使路由有效时才会执行,例如

myapp/users/logout/dave

上面将匹配该路由正在寻找的内容并导致该路由执行。

myapp/users

但是,由于缺少操作和参数,上述内容不匹配,而且带有 / 和不带 / 的 url 不是同一个 url。

由于您可以根据需要使用 add() 添加许多路线,因此添加路线的顺序表明它们的相关性,最新添加的路线比第一次添加的相关性更高。在内部,所有定义的路由都以相反的顺序遍历,直到 Phalcon\Mvc\Router 找到与给定 URI 匹配的路由并对其进行处理,而忽略其余路由。

希望这会有所帮助。

【讨论】:

猜你喜欢
  • 2017-08-18
  • 1970-01-01
  • 2013-07-29
  • 1970-01-01
  • 2018-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多