簡體   English   中英

在Yii 1中刪除數據時添加錯誤

[英]Add error when delete data in Yii 1

我正在使用默認的Yii刪除。 我只想軟刪除一行,這意味着我保留該行並將update列從0 deleted1

我在Controller中的代碼:

public function actionDelete($id)
{
    $model = $this->loadModel($id);
    if (Posts::model()->countByAttributes(['category_id' => $model->id]) == 0) {
        $model->deleted = 1;
        $model->update();
    }
    if (!isset($_GET['ajax'])) {
        $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
    }
}

現在我只想如果帖子具有任何類別,它將顯示彈出窗口無法刪除該帖子。

有什么解決辦法嗎?

gh ...通常您會在驗證器中添加錯誤。 老實說,這是最好的建議。 您可以只檢查$ _POST是否設置,將$ _POST大量分配給$ model-> attributes,然后讓模型擔心驗證。 我接下來要做的是在模型中編寫一個自定義但簡單的驗證函數,該函數將檢查是否存在所述模型的類別,如果是,則返回true,否則返回false。 然后,您將要做:

if($model->validate())
{
    $model->delete = 1;
    if($model->update)
    {
       // do whatever you wanna do redirect/render...
    }
    else {
       Yii::app()->user->setFlash('error', "Unable to delete post");
       // render or redirect... flash is more for redirect but it'll do the trick
    }
}

這將解決它的后端。 在視圖文件中,您需要顯示此Flash。 在未刪除的情況下呈現的視圖中,添加以下代碼:

<?php if(Yii::app()->user->hasFlash('error')):?>
     <div class="info">
          <?php echo Yii::app()->user->getFlash('error'); ?>
     </div>
<?php endif; ?>

我會這樣...您可以做任何想做的事

暫無
暫無

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

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