2013-10-17 40 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