2014-03-30 48 views
0

在這裏找不到答案。希望我沒有錯過它。Zend Framework 2通過控制器和動作獲取路由

我試過了,但找不到通過給定的控制器和操作inf ZF2獲取路線的方法。我想爲acls構建一個管理頁面,我想顯示資源的路由。我從Module/Controller/Action names動態構建資源。

假設我有一個名爲Application的控制器和一個名爲testAction的動作。在我的module.config.php中是定義的路由/application[:/action]。現在我想問問ZF2,哪條路線有控制器「應用程序」,方法testAction,結果應該是application/test

這是可能以某種方式?

+0

http://framework.zend.com/manual/2.0/en/modules/zend.module-manager.module-manager.html模塊管理器prob有一些聽衆可以使用它。 – cptnk

回答

0

從任何實際的觀點來看都是不可能的。

這是zf2中路由靈活性的副作用。您可以嘗試應用嚴格限制您的路線的慣例,但這不是可靠的或好的決定。

+0

謝謝。在搜索後想到類似的東西,但沒有發現任何東西。我將這篇文章作爲正確的答案,因爲我贊同Zend內部的方式。儘管如此,我會嘗試構建一個方法,嘗試通過配置來構建路由,正如我評論@ user1248927。謝謝。 – lysander

+0

您可以嘗試以這種方式設計系統,以便您的資源具有規範的路由名稱和組裝所需的參數,或者可以是存儲的規範URL。但是,這是非常具體的情況下,你肯定沒有獲得控制器和行動的路線。 – Xerkus

0

不知道我是否正確理解您正在嘗試做什麼。

而在控制器應用程序,你可以得到電流控制器和行動,

$controller = $this->params('controller'); 
$action = $this->params('action'); 

如果這不是你想要的,請提供更多的信息是什麼。

那麼這會幫助你嗎?

$config = $this->getServiceLocator()->get('Config'); 
print_r($config['router']);die; 
+0

不,我想顯示一個包含所有「控制器」及其「操作」列表的頁面。現在,如果我可以獲得每個「Action」的路由,那就好了,因此我可以生成指向該頁面的鏈接。它很高興有,但我想要它。我知道我可以自己解析配置數組,並可以找到它,做一些替換等,但我認爲有一個Zend的方式來做到這一點,我還沒有找到它。 – lysander

+0

我用另一個可能幫助你的代碼塊編輯了答案 – dixromos98

+0

是的,這是我認爲我不需要做的手動操作。想到像getRouteByControllerAndAction('Application','test')這樣的東西,但正如@Xerkus所說,這是不可能的。我想我會嘗試建立這樣一種方法,即使它會很醜並且不是很好的做法。正如我所說的,它有一個內部管理頁面。謝謝。 – lysander

相關問題