2014-10-10 106 views
0

我正在使用Yii,并且我希望在保存到数据库时通知用户约束违规。但我继续的方式并不能解决问题。 这是我的代码。Yii通知用户约束违规

行动:

public function actionPublierAContact($id){ 
    $model = new PublierAContact; 
    if(isset($_POST['PublierAContact'])){ 
     $model->setAttributes($_POST['PublierAContact']); 
     try{ 
      $model->save(); 
     }catch(CException $e){ 
      Yii::app()->clientScript->registerScript('publierac', 'alert("Deja publié")'); 
     } 
     $this->redirect(array('view', 'id' => $id)); 
    } 
    $this->render('publieracontact', array('model'=> $model, 'id' => $id)); 
} 

但是,这一点,我看不到在浏览器中alert框。 有人可以帮我快速修复吗?

回答

2

而不是捕捉异常,建立您的约束检查作为验证。这样可以更轻松地在表单上显示模型错误。

0

我对你的代码做了小的改动。尝试在保存后将$model->setAttributes($_POST['PublierAContact']);更改为$model->setAttributes = $_POST['PublierAContact'];redirect实例。可以尝试下面...

public function actionPublierAContact($id){ 
    $model = new PublierAContact; 
    if(isset($_POST['PublierAContact'])){ 
     $model->setAttributes = $_POST['PublierAContact']; 
     try{ 
      if($model->save()){ 
       $this->redirect(array('view', 'id' => $id)); 
      } 
     }catch(CException $ex){ 
      Yii::app()->clientScript->registerScript('publierac', 'alert("Deja publié")'); 
     } 
    } 
    $this->render('publieracontact', array('model'=> $model, 'id' => $id)); 
}