モジュール内にウィジェットを作成し、そのウィジェットをモジュールの「外部」からロードしようとしています。より具体的には、私は他の誰かによって書かれたユーザーモジュールを使用しています。ログインフォームを表示するための別のページを持ちたくないので、ログインフォームを表示する CPortlet/widget (混乱) を作成しようとしました。基本的に、コードを LoginController からそのウィジェットに移動しました。次に、ウィジェットをランダムなページに表示しようとします
<?php $this->widget('user.components.LoginForm'); ?>
ただし、エラーが発生します
CWebApplication does not have a method named "encrypting".
この行の UserIdentity クラス:
else if(Yii::app()->controller->module->encrypting($this->password)!==$user->password)
これは、基本的にモジュールではなくアプリのコンテキスト内でこのコードを実行しようとしているためです。したがって、「Yii::app()->controller->module」というトリックは実際には期待どおりに機能しません。
- 何が間違っているのですか:-\
- これを達成するためのより良い方法はありますか。つまり、通常はユーザー モジュール (ユーザー/ログイン) 内のログイン コントローラーにアクセスすることによって表示される他のページにそのログイン フォームを表示しますか、それともウィジェットを使用するのが正しい方法ですか?
ありがとう。