YII2 中 beforeSave 不執行問題分析
首先了解一下 YII2 Model的執行流程:
- 初始化Model
- 給Model賦值
- Model 數據驗證
- 執行save操作
beforeSave() 是在調用 save() 方法後在保存數據之前執行, 因此造成beforeSave() 未執行的原因可能出現在上面的第三步,保存的數據沒能通過數據驗證,以至於未能執行之後的操作。
查看該類型錯誤的方式:
...
if (!$model->save()) {
var_dump($model->getErrors()); exit();
}