jqgrid筛选器工具栏已删除的行

问题描述

我正在将jqgrid与multiselect工具栏过滤器一起使用。我使用softDeletes并想在!null的地方过滤删除

我可以过滤null,但是如何过滤不为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')]);

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

亲切的问候

解决方法

所以我找到了解决方法。

格式化程序无济于事,但是如果您在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')]);