簡體   English   中英

Yii通知用戶違反約束的情況

[英]Yii notify user about constraint violation

我正在使用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框。 有人可以幫助我快速修復它嗎?

代替捕獲異常,構建約束檢查作為驗證。 然后,它可以更輕松地在表單上顯示模型錯誤。

我對您的代碼進行了微小的更改。 嘗試通過更改$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));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM