afterSave 和 yii2 中的事件之间的区别?

Blo*_*und 5 yii-events yii2

我想在新用户注册时向管理员发送电子邮件。我想我可以用两种方法来做到这一点。一种方法是使用事件,另一种方法是使用 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,
            ]);
        }
    }
Run Code Online (Sandbox Code Playgroud)

型号代码

const EVENT_NEW_USER = 'new-user'; 
public function init(){

  $this->on(self::EVENT_NEW_USER, [$this, 'sendMail']);

}

public function sendMail($event){
   //  code 
}
Run Code Online (Sandbox Code Playgroud)

我可以使用该afterSave方法做同样的事情

型号代码

public function afterSave($insert)
{
   //code
    return parent::afterSave($insert);
}
Run Code Online (Sandbox Code Playgroud)

那么这两种方法有什么区别吗?Events使用或哪个更好afterSave()?

Pau*_*ias 4

我是 Yii 的新手,

这取决于您想要实现的目标。

当您使用 afterSave 时,还会发送有关更新的电子邮件。

所以事件将是解决你的问题的更好选择。

感谢和问候

保罗·埃利亚斯