2

場合によっては、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;
        }
4

1 に答える 1

2

ここに記載されているように: でbeforeSave($event)メソッドをオーバーライドする場合、所有者モデルを保存しないようにするには、のプロパティを false にCActiveRecordBehavior設定する必要があります。isValid$event

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

$model->errorsまた、 ではなくであることに注意してください$model->validationErrors

于 2013-10-17T07:16:16.990 に答える