YII2 中 beforeSave 不执行问题分析
首先了解一下 YII2 Model的执行流程:
- 初始化Model
- 给Model赋值
- Model 数据验证
- 执行save操作
beforeSave() 是在调用 save() 方法后在保存数据之前执行, 因此造成beforeSave() 未执行的原因可能出现在上面的第三步,保存的数据没能通过数据验证,以至于未能执行之后的操作。
查看该类型错误的方式:
...
if (!$model->save()) {
var_dump($model->getErrors()); exit();
}