【发布时间】:2014-01-10 06:40:46
【问题描述】:
我在 Zend 的一个控制器中,我想遍历当前路由。我能够获得路线,但它们受到保护,因此我无法循环通过它们。这是我用来获取路线的内容:
$routes = Zend_Controller_Front::getInstance()->getRouter();
foreach ($routes as $key => $route) {
// I need to get controller and action for each $route but it is protected, see debug output of $route below to see what I am trying to access.
}
我看到了 _routes 并获得了它的名称,但我需要每个路由的控制器和操作,并且这些都是受保护的。有什么办法可以做到这一点?我已经搜索了 Google 和 Stack,但似乎找不到任何东西。
编辑:只是为了详细说明给出的第一个答案。我获取路线没有问题,它返回一个 Zend_Controller_Router_Route_Chain 对象数组,我可以循环访问它,看起来像这样:
object(Zend_Controller_Router_Route_Chain)#83 (5) {
["_routes":protected]=>
array(2) {
[0]=>
object(Zend_Controller_Router_Route_Hostname)#34 (13) {
["_hostVariable":protected]=>
string(1) ":"
...
}
[1]=>
object(Zend_Controller_Router_Route_Static)#78 (4) {
["_route":protected]=>
string(0) ""
["_defaults":protected]=>
array(3) {
["module"]=>
string(7) "default"
["controller"]=>
string(5) "index"
["action"]=>
string(14) "hubverify-home"
}
...
}
}
【问题讨论】:
标签: php zend-framework routes