Yii通知用户约束违规

时间:2014-10-10 13:55:02

标签: javascript php 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 :(得分:2)

不要捕获异常,而是将约束检查构建为验证。然后,它可以更容易地在表单上显示模型错误。

答案 1 :(得分: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));
}