メールで送信されたアクティベーション リンクをクリックしてユーザーをアクティベートする際に問題が発生しています。
http://www.example.com/devtest/index.php?r=user/check&activationcode=bc74873d0e3f684d3e6b99a36169a793ee688406などのアクティベーション リンクをクリックすると、データベースを更新せずにログイン ページにリダイレクトされます。
ユーザーディレクトリにあるビューファイルcheck.phpに対して、次のコントローラーコードが機能していないと思います。これが私のコードです-
ユーザーコントローラー.php:
public function actionCheck(){$activationcode = Yii::app()->request->getQuery('activationcode');
if(isset($activationcode))
{
$model = User::model()->findByAttributes(array('activationcode'=>$activationcode));
if($model !== null)
{
$model->status=1;
$model->save();Yii::app()->user->setFlash('check','Thank you for register with us');
$this->refresh();
}
}
$this->render('check',array('model'=>$model));
}
ファイル check.php を表示します。
<?php if(Yii::app()->user->hasFlash('check')): ?>
<div class="flash-success">
<?php echo Yii::app()->user->getFlash('check'); ?>
</div>
<?php endif; ?>
UserController で GET URL アクションを処理する方法がわかりません。また、accessRules に「チェック」という単語を追加して既にテストしましたが、ブラウザはページが正しくリダイレクトされないことを示しています。
public function accessRules()
{
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>array('index','create','view','captcha'),
'users'=>array('*'),
),);}
何か案が?私の問題についての解決策を教えてください。
ありがとう、MRS