2014-10-10 4 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)); 
} 
관련 문제