Phalcon路由行为 - 冗余路由?

时间:2013-10-10 23:11:38

标签: php phalcon

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

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 ”路由,则不会匹配以控制器名称结尾的网址。

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

$router->setDefaultAction('index');

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

谢谢!

1 个答案:

答案 0 :(得分:1)

此路线

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

只有在获得所有部分以使路由有效时才会执行

myapp/users/logout/dave

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

myapp/users

但由于缺少动作和params,上述内容也不匹配,而且/和没有的url不是相同的url。

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

希望这会有所帮助。