2

在某些情况下,我希望 Yii 行为中的 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;
        }
4

1 回答 1

2

如此所述:如果您覆盖 a 中的beforeSave($event)方法CActiveRecordBehavior,则必须将 的isValid属性设置$event为 false,如果您想防止保存所有者模型。

if($preventSave) {
    $event->isValid = false;
}

另请注意,它是$model->errors,不是$model->validationErrors

于 2013-10-17T07:16:16.990 回答