我想在新用户注册时向管理员发送电子邮件。我想我可以用两种方式做到这一点。一种方法是使用事件,另一种方法是使用afterSave。 通过使用事件 控制器代码
public function actionCreate()
{
$model = new Registeration();
if ($model->load(Yii::$app->request->post()))
{
if($model->save())
{
$model->trigger(Registeration::EVENT_NEW_USER);
}
return $this->redirect(['view', 'id' => $model->id]);
} else {
return $this->render('create', [
'model' => $model,
]);
}
}
型号代码
const EVENT_NEW_USER = 'new-user';
public function init(){
$this->on(self::EVENT_NEW_USER, [$this, 'sendMail']);
}
public function sendMail($event){
// code
}
我可以使用afterSave
方法
型号代码
public function afterSave($insert)
{
//code
return parent::afterSave($insert);
}
这两种方法有什么区别吗?使用Events
或afterSave()
哪个更好?
答案 0 :(得分:4)
我是Yii的新手,
这取决于您要实施的目标。
当您使用afterSave电子邮件时,也会发送更新。
所以事件对你的问题来说是更好的选择。
谢谢&此致
Paul P Elias