2013-10-17 248 views
2

我想在某些情況下,Yii Behavior中的beforeSave會中斷保存並返回錯誤。我已經試過了,沒有工作是:如何在Yii之前保存保存

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; 
     } 
+0

是validationErrors變量在模型類中聲明? like public驗證錯誤 –

+0

哦,是的 當然 –

+0

Yii驗證所有輸入的規則,你不應該去那個保險前的行動..如何有的是有變量,如果你設置爲false,你將防止保存。 。 – Svetoslav

回答

2

如記錄here:如果覆蓋beforeSave($event)方法在CActiveRecordBehavior,你必須設置isValid屬性$event爲假,如果你想防止保存所有者模型。

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

還要注意,它的$model->errors,不$model->validationErrors