我在Zend的控制器中,我想循环当前路由。我能够获得路线,但他们受到保护,所以我无法循环他们。这里是我用什么来获取途径:Zend Framework - 如何循环通过控制器中的路由
$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和获得它的名字,但我需要为每个路由控制器和动作以及那些受到保护。任何方式来实现这一目标?我搜索了谷歌和堆栈,似乎无法找到任何东西。
编辑:只是为了更精确地给出第一个答案。我没有问题,得到的路由,它返回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"
}
...
}
}
感谢comment.That部分是没有问题的,我已经更新了我的问题有更多的细节,所以你可以看到我我正在尝试访问。非常感激! – Wapoa
@Wapoa,我更新了我的答案 –
谢谢我从来没有见过ReflectionProperty在使用,这是一个很好的例子,让我进入。非常感激。 – Wapoa