yii2型中的返回余波

yii2型中的返回余波,yii2,Yii2,如果有一个控制器Yi2和一个模型,其中,例如,仅轮廓: class MyController class extends Controller { public function actionCreate() { $valid = $model->validate(); } } 需要从aftersave返回,这是一条指示电子邮件是否能够发送的消息,并且插入了所有属性 在模型中保存后: public function afterSave($insert, $

如果有一个控制器Yi2和一个模型,其中,例如,仅轮廓:

class MyController class extends Controller {
    public function actionCreate() {
        $valid = $model->validate();
    }
}
需要从aftersave返回,这是一条指示电子邮件是否能够发送的消息,并且插入了所有属性

在模型中保存后:

public function afterSave($insert, $changedAttributes) {
    if(!$this->isNewRecord) {
        try {
            Yii::$app->mailer->compose()
                // email composition here
                ->send();

            return 'mail sent';
        catch (\Swift_SwiftException $exception) {
            return 'email undeliverable'. $exception->getMessage();
        }
    }
}

控制器能否访问afterSave返回的消息?

否,您将无法访问这些消息中的任何一条,因为:

  • 在您正在调用的控制器中,将永远不会调用
    $model->validate()
    afterSave()
    。您需要调用
    $model->save()
  • afterSave()
    不应返回任何内容,因此您返回的值将丢失。请参见官方文档中的函数定义

  • 否,您将无法访问任何这些邮件,因为:

  • 在您正在调用的控制器中,将永远不会调用
    $model->validate()
    afterSave()
    。您需要调用
    $model->save()
  • afterSave()
    不应返回任何内容,因此您返回的值将丢失。请参见官方文档中的函数定义

  • 不,它不会用你的代码触发余波事件。在两个地方被触发


  • 如果你看一下,你会发现afterSave没有在这里调用。

    不,它不会用你的代码触发afterSave事件。在两个地方被触发

  • 如果你看一下,你会发现afterSave并没有在这里打电话