牛骨文教育服务平台(让学习变的简单)

replaceRightButton("匹配条件", "最终要替换的内容", "目标按钮")

版本 新增功能
1.0.5 增强条件判断,支持替换指定按钮

如果要修改某些数据的右侧按钮,比如,管理员用户组不给用户操作,只显示一个不可操作的按钮。

->replaceRightButton(["id" => 1], "<button class="btn btn-danger btn-xs" type="button" disabled>不可操作</button>") // 修改id为1的按钮

上面的代码是将id字段为1的数据,右侧按钮替换为”不可操作“;

设置多个匹配条件

->replaceRightButton(["id" => 1, "status" => 1], "<button class="btn btn-danger btn-xs" type="button" disabled>不可操作</button>") // 修改id为1的按钮

表示id字段为1并且status字段为1的数据,右侧按钮替换为”不可操作“;

设置多个替换规则

->replaceRightButton(["id" => 1], "<button class="btn btn-danger btn-xs" type="button" disabled>不可操作</button>")
->replaceRightButton(["id" => 2], "<button class="btn btn-danger btn-xs" type="button" disabled>可操作</button>")

从1.0.5版本开始,增强了条件判断,并支持替换指定按钮

比如:

->replaceRightButton(["status" => ["in", "0,1"]], "", "edit,delete")

表示当status字段为0或者1,则将编辑按钮和删除按钮替换为空,即不显示这两个按钮。

也可以这样写:

->replaceRightButton(["status" => ["in", "0,1"]], "", ["edit", "delete"])

提示:如果不指定替换的按钮,则默认替换所有按钮。

->replaceRightButton(["status" => 1], "")

表示如果status为1,则不显示所有按钮。

注意,以上的例子指定了替换编辑按钮和删除按钮,也就是需要添加这两个按钮,判断才起作用。

replaceRightButton方法的第一个参数是判断条件,基本使用方法如下:

["字段名" => ["表达式", "对比条件"]]

表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:

表达式 含义
EQ、= 等于(=)
NEQ、<> 不等于(<>)
GT、> 大于(>)
EGT、>= 大于等于(>=)
LT、< 小于(<)
ELT、<= 小于等于(<=)
[NOT] BETWEEN (不在)区间查询
[NOT] IN (不在)IN 查询

表达式查询的用法示例如下:

EQ :等于(=)

->replaceRightButton(["status" => 1], "", "edit")
->replaceRightButton(["status" => ["eq", 1]], "", "edit")
->replaceRightButton(["status" => ["=", 1]], "", "edit")

表示status字段等于1时,不显示编辑按钮。

NEQ: 不等于(<>)

->replaceRightButton(["status" => ["neq", 1]], "", "edit")
->replaceRightButton(["status" => ["<>", 1]], "", "edit")

表示status字段不等于1时,不显示编辑按钮。

GT:大于(>)

->replaceRightButton(["status" => ["gt", 1]], "", "edit")
->replaceRightButton(["status" => [">", 1]], "", "edit")

表示status字段大于1时,不显示编辑按钮。

EGT:大于等于(>=)

->replaceRightButton(["status" => ["egt", 1]], "", "edit")
->replaceRightButton(["status" => [">=", 1]], "", "edit")

表示status字段大于等于1时,不显示编辑按钮。

LT:小于(<)

->replaceRightButton(["status" => ["lt", 1]], "", "edit")
->replaceRightButton(["status" => ["<", 1]], "", "edit")

表示status字段小于1时,不显示编辑按钮。

ELT: 小于等于(<=)

->replaceRightButton(["status" => ["elt", 1]], "", "edit")
->replaceRightButton(["status" => ["<=", 1]], "", "edit")

表示status字段小于等于1时,不显示编辑按钮。

[NOT] BETWEEN : (不在)区间查询

支持字符串或者数组,例如:

->replaceRightButton(["status" => ["between", "0,8"]], "", "edit")

和下面的等效:

->replaceRightButton(["status" => ["between", [0, 8]]], "", "edit")

表示status字段在0到8之间时,不显示编辑按钮。

->replaceRightButton(["status" => ["not between", "0,8"]], "", "edit")
->replaceRightButton(["status" => ["not between", [0, 8]]], "", "edit")

表示status字段不在0到8之间时,不显示编辑按钮。

[NOT] IN:(不在)IN 查询

支持字符串或者数组,例如:

->replaceRightButton(["status" => ["in", "1,5,8"]], "", "edit")

和下面的等效:

->replaceRightButton(["status" => ["in", [1,5,8]]], "", "edit")

表示status字段为1或5或8时,不显示编辑按钮。

->replaceRightButton(["status" => ["not in", "1,5,8"]], "", "edit")
->replaceRightButton(["status" => ["not in", [1,5,8]]], "", "edit")

表示status字段不是1或5或8时,不显示编辑按钮。

或的用法

->replaceRightButton(["status" => 1], "", "delete")
->replaceRightButton(["status" => 0], "", "delete")

表示status字段为1或者0,不显示删除按钮,可以使用一条语句完成相同的效果。

->replaceRightButton(["status" => ["in", "0,1"]], "", "delete")

且的用法

->replaceRightButton(["status" => 1,, "nickname" => "ming"], "", "delete")

表示status字段为1并且nickname字段为ming时,不显示删除按钮。

高级用法

如果以上用法还不符合需求,可以自定义函数处理,返回true表示替换,返回fale表示不替换。

->replaceRightButton(function ($data){
	return $data["status"] == 0;
}, "", "delete")

表示当status字段的值为0时,不显示删除按钮。

其中,$data是当前行的所有字段数据。