我在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