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是当前行的所有字段数据。