首页 > 解决方案 > jqgrid过滤工具栏删除的行

问题描述

我正在使用带有多选工具栏过滤器的 jQgrid。我使用 softDeletes 并希望在 !null 处过滤删除。

我可以过滤空值,但我如何过滤非空值?

也许使用格式化程序?

询问:

        $query->select([
            "actions.id AS action_id",
            "actions.global AS action_global",
            "actions.name AS action_name",
            "actions.description AS action_description",
            "actions.deleted_at AS deleted",
        ])->withTrashed();

列:

        $grid->setColModel([
            ["name" => "action_id", "hidden" => true],
            ["name" => "action_name", "label" => __("actioncontroller.action_name")],
            ["name" => "action_global", "label" => __("actioncontroller.action_global")],
            ["name" => "action_description", "label" => __("actioncontroller.action_description")],
            ["name" => "deleted", "label" => __("deleted")],
        ]);

筛选:

$grid->setSelect("deleted", [1 => __('yes'), null => __('no')]);

有人知道如何解决这个问题吗?

亲切的问候

标签: laravelfilternulljqgridtoolbar

解决方案


所以我找到了解决方案。

格式化程序没有帮助,但是如果您在 RAW 中使用 if null 语句。它将根据您的选择进行过滤。

询问:

$query->select([
            "actions.id AS action_id",
            "actions.global AS action_global",
            "actions.name AS action_name",
            "actions.description AS action_description",
            DB::raw("IF(ISNULL(actions.deleted_at),'N','Y') AS deleted"),
        ])->withTrashed();

筛选:

$grid->setSelect("deleted", ["N" => __('no'), "Y" => __('yes')]);

推荐阅读