如何使Yii beforeSave打破保存

时间:2013-10-17 07:09:50

标签: php yii yii-events yii-behaviour

在某些情况下,我想在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;
        }

1 个答案:

答案 0 :(得分:2)

记录here:如果您覆盖beforeSave($event)中的CActiveRecordBehavior方法,则必须将isValid的{​​{1}}属性设置为false,如果你想阻止保存所有者模型。

$event

另请注意,它是if($preventSave) { $event->isValid = false; } ,而不是$model->errors