2014-10-10 66 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)); 
}