在某些情况下,我想在Yii Behavior中使用beforeSave来中断保存并返回错误。我尝试过但没有奏效的是:
public function beforeSave($event) {
parent::beforeSave($event);
$tested_value = null;
if(is_null($tested_value)){
$this->validationErrors = Yii::t('app', 'Ops! Error');
return false;
}
}
在控制器中:
$model=new Post;
if($model->save()){
// no matter what this is always executed
} else {
print_r($model->validationErrors);die;
}
答案 0 :(得分:2)
记录here:如果您覆盖beforeSave($event)
中的CActiveRecordBehavior
方法,则必须将isValid
的{{1}}属性设置为false,如果你想阻止保存所有者模型。
$event
另请注意,它是if($preventSave) {
$event->isValid = false;
}
,而不是$model->errors
。