Phalcon 路由行为 - 冗余路由


Phalcon routing behaviour - redundant routes?

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

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/:p arams'的子集。

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

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

$router->setDefaultAction('index');

这是一个错误还是一个功能?

谢谢!

这条路线

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

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

myapp/users/logout/dave

上述内容将与该路由要查找的内容匹配,并导致路由执行。

myapp/users

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

由于您可以使用 add(( 根据需要添加许多路由,因此添加路由的顺序指示其相关性,因此添加的最新路由比首次添加的路由具有更高的相关性。在内部,所有定义的路由都以相反的顺序遍历,直到 Phalcon''Mvc''Router 找到与给定 URI 匹配的路由并对其进行处理,同时忽略其余路由。

希望这有帮助。