2012-01-19 43 views
2

在YII工作中,我有一個init()函數,它檢查會話是否設置,如果不是重定向到登錄頁面。YII - 我們如何在控制器的init()函數中獲取方法的名稱?

問題是,「登錄」操作也在同一個控制器中,所以它創建了一個無限循環。如果我可以在init()函數中獲取方法名稱,我可以解決這個問題。

如何在init()函數中獲取方法名?

+0

'__FUNCTION__'是否適合你的情況? http://php.net/manual/en/language.constants.predefined.php – SeanNieuwoudt

+0

@SeanNieuwoudt你好我正在使用YII ...我想獲取被稱爲不是函數名稱的動作名稱.. – SHANib

回答

5

電流控制器

Yii::app()->controller->id 

和 當前操作

Yii::app()->controller->action->id 

要檢查活動ID比的init()等所有功能,因爲初始化函數初始化控制器...

所以你的問題的解決方案將讓請求來到你的登錄控制器的actionLogin ..並且你檢查會話是否不檢查將他從他來的地方重定向..請執行登錄操作..這樣你就不會面臨循環問題..

+1

這不工作在init()函數中會拋出一個錯誤...它在其他函數中工作fyn – SHANib

+1

錯誤:試圖獲取非對象的屬性 – SHANib

+0

我已經爲您的問題更新了答案... –

相關問題