2012-01-19 12 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 

init関数は、コントローラを初期化するために、init()以外のすべての機能にアクションIDを確認する...

あなたの問題の解決策は、あなたのログインコントローラのactionLoginにリクエストが来るようになります。そして、セッションがチェックされていないかどうかをチェックします彼が来るところから彼をリダイレクトしてください。ログインアクションを実行してください。あなたはループの問題に直面しません。

+1

これは動作しませんinit()関数でエラーをスローする...他の関数でfynを実行する – SHANib

+1

エラー:非オブジェクトのプロパティを取得しようとしています – SHANib

+0

あなたの問題の答えを更新しました... –

関連する問題