1

yii-userと拡張機能を使用してアプリケーションをまとめようとしていますyii-eauthが、足りません。新しいWebアプリを作成してeauthをインストールすると、正常に動作するようになるので、その目的で何も悪いことをしていないことがわかります。問題は私のURLにあると思います。これは、http://nodge.ru/yii-eauth/demo/loginのデモです。誰かが「グーグル」をクリックすると、グーグルのサインインページが表示されますが、私のアプリケーションでは、"The system is unable to find the requested action "login"."このURLはでuser/user/login/service/google_oauthあるのに対し、URLは「」と表示される404エラーが発生しますuser/login/service/google_oauth。これをブラウザに手動で入力すると、正しいページにリダイレクトされます。

そこで、EAuthWidget.phpクラスを調べて、その余分な「ユーザー」がどこから取得されているかを確認できましたが、理解できませんでした。/modules/userこれは、Webアプリケーションのディレクトリにあるユーザーモジュールにあるという事実と関係があると思います。また、を使用しURLManagerて正しいアドレスを指すようにしましたが、うまくいきませんでした。

誰かがこれを設定した同様の経験がありますか?または何か提案はありますか?

4

1 に答える 1

2

actionビュー内のウィジェット初期化コードを変更する(つまり、ウィジェットのプロパティを変更する)必要があるのは、次のようになります。

<h2>Do you already have an account on one of these sites? Click the logo to log in with it here:</h2>
<?php 
  $this->widget('ext.eauth.EAuthWidget', array('action' => 'login'));
?>

追加するだけで、このアクションは、このウィジェットを含めるビューによって異なることに注意してください。ビューがprotected / views / site / login.php(yiiのデフォルトのサイトログインビュー)である場合、アクションは次の場所に移動できるはずです。 yii-userモジュールのログインアクションなので、次のようになります。'action'=>'/user/login'ただし、このウィジェットをyii-userのprotected / modules / user / views / user / login.phpに含めると、アクションは'login'すでに説明したとおりになります。

于 2012-05-24T09:36:16.297 に答える