php - 如何让Yii beforeSave中断保存

标签 php yii yii-events yii-behaviour

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

在 Controller 中:

        $model=new Post;
        if($model->save()){
            // no matter what this is always executed
        } else {
            print_r($model->validationErrors);die;
        }

最佳答案

据记录here :如果您在 CActiveRecordBehavior 中重写 beforeSave($event) 方法,则必须设置 $event 的 isValid 属性 为 false,如果您想阻止保存所有者模型。

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

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

关于php - 如何让Yii beforeSave中断保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19420366/

相关文章:

php - 仅当数据不存在时才将数据从一个表插入到另一个表

php - 下拉框内的列表项

php - 保存模型之前在 YII 中获取模型 ID

yii2 - yii2 中 afterSave 和事件之间的区别?

php - 在 JavaScript 函数中使用 FORM POST

php - 不可编辑的文本字段

php - Javascript 特定属性更改

php - 如何将 HTML 格式的表单数据保存到 txt 文件。

php - 在 PHPExcel 中找不到类 'ZipArchive'

php - $model-validation() 在 yii 中总是返回 false?