2012-01-30 52 views
0

我有控制器具有以下擴展名:檢索請求參數(例如,控制器和動作)在Kohana的3.2

Controller_Login延伸Controller_Layout Controller_Layout延伸Controller_Template

,使所有控制器(處理用戶的URL)將通過Controller_Layout。在我的controller_Layout中,我試圖檢索控制器和動作url值,以便綁定它們並將它們顯示在我的佈局視圖中。

調用此echo $this->request->param('controller');時不返回任何內容(空字符串),而調用echo $this->request->param();則返回空數組。很明顯,請求中沒有任何內容。

我想知道這是否是因爲我試圖從實際處理請求的父控制器中檢索請求值。 Idealy我想通過我的父母控制器(controller_Layout)來處理這個問題,因爲每個頁面請求都需要通過此調用來檢索控制器和操作值

任何想法?

回答

2

要獲取當前的請求控制器名稱,請使用$this->request->controller()而不是$this->request->param('controller')。對於當前操作同樣如此,它們不是可變參數,因此它們以這種方式訪問​​。

是的,你可以處理父控制器中的那些,保持它乾燥:)

+0

是的工作!我曾嘗試使用controller()調用,但我必須在錯誤的函數調用中使用它;似乎如果我把它放在before()函數中,它可以很好地工作,但是當我將它放在我的controller_Layout的action_index()函數調用中時,我會得到所有這些錯誤......你知道爲什麼嗎? 你是什麼意思,保持乾燥?由於沒有太多的價值操縱? – Prusprus 2012-01-30 16:42:38

+0

@ user751564 DRY =不要重複自己 – Kemo 2012-01-31 12:09:33

+0

好的非常感謝。 – Prusprus 2012-01-31 21:54:07

相關問題