2013-10-10 101 views
0

我用下面的路由例如工作: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 /:action /:params'。

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

为什么没有路由器回落到默认的动作名称,我可以表示为:

$router->setDefaultAction('index'); 

这是一个错误或功能?

谢谢!

+0

答案是否澄清? –

回答

1

这条路线

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

如果它得到所有部分将只执行使路径有效例如

myapp/users/logout/dave 

以上将匹配什么路线寻找,并导致路线执行。

myapp/users 

上面的内容不匹配,因为缺少动作和参数也有一个URL与/和不是相同的网址。

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

希望这会有所帮助。

+0

我决定在Phalcon论坛中重振这一点:http://forum.phalconphp.com/discussion/1823/router-url-generator – temuri