if(!$validate)
ブロック関数では、mail
実際に 1 回実行されます。
なぜif($validate)
ブロックmail
関数で2回実行されるのだろうか!!!???
この問題は、Ajax
リクエスト時と最初のview page
ロード時にのみ発生します。その後、if($validate)
ブロックは 1 回実行され、他の要求ではif($validate)
ブロックが実際に 1 回実行されます。
public function actionCEmail()
{
$model = $this->loadModel(Yii::app()->user->id);
$model->scenario = 'CEmail';
if(isset($_POST['User'])){
$model->attributes = $_POST['User'];
$validate=$model->validate();
if(Yii::app()->request->isAjaxRequest){
if(!$validate) {
$to='test@example.ds';
$subject='test';
$message='this is test';
mail($to,$subject,$message);
Yii::app()->end();
}
if($validate){
$to='test@example.ds';
$subject='test';
$message='this is test';
mail($to,$subject,$message);
Yii::app()->end();
}
}
}
if(Yii::app()->request->isAjaxRequest)
$this->renderPartial('_cemail',array('model'=>$model),false,true);
else
$this->render('update',array('model'=>$model,'form'=>'_cemail'));
}
情報が必要な場合は、それを入れてください。