Model view controller 使用Zend框架的路由链接
我正试图为我正在工作的Zend Framework站点上的管理面板实现路由链接。我使用下面的配置文件希望“admin”路由使用“/admin”,而“adminLogin”路由使用“/admin/login”Model view controller 使用Zend框架的路由链接,model-view-controller,zend-framework,routing,chaining,Model View Controller,Zend Framework,Routing,Chaining,我正试图为我正在工作的Zend Framework站点上的管理面板实现路由链接。我使用下面的配置文件希望“admin”路由使用“/admin”,而“adminLogin”路由使用“/admin/login” 管理 管理 指数 指数 登录 管理 登录 指数 但在这种配置下,只有“adminLogin”可以工作。路由“admin”路由到默认模块/控制器/操作 我想我一定错过了链锁的工作原理。 非常感谢任何反馈这是链条的错误使用 只需为/admin声明一个路由,为/admin/login声明另一个
管理
管理
指数
指数
登录
管理
登录
指数
但在这种配置下,只有“adminLogin”可以工作。路由“admin”路由到默认模块/控制器/操作
我想我一定错过了链锁的工作原理。
非常感谢任何反馈这是链条的错误使用
只需为/admin声明一个路由,为/admin/login声明另一个路由。如果使用多个路由类来确定一个路由的分辨率(如主机名和路径),则链更有用。链的父路由(在本例中,
admin
)实际上与实际路由不匹配。它的唯一目的是捕捉顶级匹配,然后让链接的子级处理实际路由
尝试显式地将空静态路由添加到链的顶部,如下所示:
<chains>
<index type="Zend_Controller_Router_Route_Static">
<route></route>
<defaults module="admin" controller="index" action="index" />
</index>
<login>
<route>login</route>
<defaults>
<module>admin</module>
<controller>login</controller>
<action>index</action>
</defaults>
</login>
</chains>
登录
管理
登录
有关链接路线的更多详细信息和获取信息
此外,值得注意的是,路由器会自动将链接的路由名称与破折号连接起来,因此,如果您需要显式使用登录路由,它当前将被命名为admin adminLogin
。我建议将其重命名为simplylogin
由于一个bug,这可能不再有效。不过,还有一个变通办法
因此,路径admin
不匹配,当您尝试导航到/admin
时,您会得到默认模块的索引控制器的索引操作?这正是发生的情况。这实际上是对链的一个很好的使用。现在,他可以通过更改父链的路由参数来更改整个管理部分的基本url。就这样,应用程序的其余部分只关心路线名称。这是对链的完全正确使用。即使不使用多个route类,链也是非常有用的。
<chains>
<index type="Zend_Controller_Router_Route_Static">
<route></route>
<defaults module="admin" controller="index" action="index" />
</index>
<login>
<route>login</route>
<defaults>
<module>admin</module>
<controller>login</controller>
<action>index</action>
</defaults>
</login>
</chains>