模型返回afterSave yii2
问题描述:
如果没有与其中一个型号一个控制器yii2,例如,只有轮廓:模型返回afterSave yii2
class MyController class extends Controller {
public function actionCreate() {
$valid = $model->validate();
}
}
需要从aftersave的回报,这是指示消息,如果电子邮件能发送与否,并插入所有属性。
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()
不应该返回任何内容,因此您返回的值将丢失。请参阅官方文档中的函数定义here
答
不,它不会触发afterSave事件与您的代码。 \yii\db\BaseActiveRecord::afterSave在2个地方
,如果你在\yii\base\Model::validate看看你会看到afterSave没有调用这里被触发。