我正在使用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
框。
有人可以帮我快点解决吗?
答案 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));
}