【问题标题】:Set deleted records = 1 without actually deleting the records设置已删除记录 = 1 而不实际删除记录
【发布时间】:2015-11-09 22:39:50
【问题描述】:

如何将要删除的记录设置为 1 而不是删除记录本身?我现在正在使用 Yii 框架,我是新手。我有带有更新、查看和删除功能的 CGridview。在删除时,我希望用户将他们要删除的记录设置为 1,而不是删除整个记录。提前感谢您提供的任何帮助!

【问题讨论】:

    标签: yii cgridview


    【解决方案1】:

    只需在控制器中更新您的actionDelete

    public function actionDelete($id)
        {
            $model = $this->loadModel($id);
            $model->is_deleted = "1"; //assuming is_deleted is the column name
            $model->update();
    
            // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
            if(!isset($_GET['ajax']))
                $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
        }
    

    和你的模型search函数删除那些有is_deleted = 1的项目,你可以:

    //.... rest of your code above
    $criteria->addCondition("is_deleted != 1");
    return new CActiveDataProvider($this, array(
                'criteria'=>$criteria,
            ));
    

    【讨论】:

    • 当我尝试删除它时出现错误。我还必须在模型中创建一个新函数吗?
    • @revuer1 不,您不必在模型中创建函数。你的错误到底是什么?
    • 这行得通。谢谢你。无论如何我可以将那些说 IsDeleted=1 的记录的颜色从蓝色更改为红色吗?
    • @revuer1 很高兴它有帮助,如果它对您有帮助,请接受答案。对于第二部分,如果您提出一个新问题会更好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 2017-12-22
    相关资源
    最近更新 更多