添加行class名 (1.0.5+)
1.0.5开始支持按条件给某一行加class名。
基本用法:
->addTrClass("class名", "字段名", "表达式", "对比条件")
本方法的用法和ThinkPHP的where查询类似,比如希望status
字段为1时,给所在行添加一个名为success
的行class。
->addTrClass("success", "status", "=", 1)
等同于
->addTrClass("success", "status", "eq", 1)
也等同于
->addTrClass("success", "status", 1)
表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:
表达式 | 含义 |
---|---|
EQ、= | 等于(=) |
NEQ、<> | 不等于(<>) |
GT、> | 大于(>) |
EGT、>= | 大于等于(>=) |
LT、< | 小于(<) |
ELT、<= | 小于等于(<=) |
[NOT] BETWEEN | (不在)区间查询 |
[NOT] IN | (不在)IN 查询 |
表达式查询的用法示例如下:
EQ :等于(=)
->addTrClass("success", "status", "eq", 1)
->addTrClass("success", "status", "=", 1)
->addTrClass("success", "status", 1)
表示status字段等于1时,tr标签添加success类名。
NEQ: 不等于(<>)
->addTrClass("success", "status", "neq", 1)
->addTrClass("success", "status", "<>", 1)
表示status字段不等于1时,tr标签添加success类名。
GT:大于(>)
->addTrClass("success", "status", "gt", 1)
->addTrClass("success", "status", ">", 1)
表示status字段大于1时,tr标签添加success类名。
EGT:大于等于(>=)
->addTrClass("success", "status", "egt", 1)
->addTrClass("success", "status", ">=", 1)
表示status字段大于等于1时,tr标签添加success类名。
LT:小于(<)
->addTrClass("success", "status", "lt", 1)
->addTrClass("success", "status", "<", 1)
表示status字段小于1时,tr标签添加success类名。
ELT: 小于等于(<=)
->addTrClass("success", "status", "elt", 1)
->addTrClass("success", "status", "<=", 1)
表示status字段小于等于1时,tr标签添加success类名。
[NOT] BETWEEN : (不在)区间查询
支持字符串或者数组,例如:
->addTrClass("success", "status", "between", "0,8")
和下面的等效:
->addTrClass("success", "status", "between", [0,8])
表示status字段在0到8之间时,tr标签添加success类名。
->addTrClass("success", "status", "not between", "0,8")
->addTrClass("success", "status", "not between", [0,8])
表示status字段不在0到8之间时,tr标签添加success类名。
[NOT] IN:(不在)IN 查询
支持字符串或者数组,例如:
->addTrClass("success", "status", "in", "1,5,8")
和下面的等效:
->addTrClass("success", "status", "in", [1,5,8])
表示status字段为1或5或8时,tr标签添加success类名。
->addTrClass("success", "status", "not in", "1,5,8")
->addTrClass("success", "status", "not in", [1,5,8])
表示status字段不是1或5或8时,tr标签添加success类名。
类名可指定多个
->addTrClass("success", "status", 0)
->addTrClass("warning", "status", 0)
表示status字段为0时,tr标签添加success
和warning
类名。
与下面的写法效果相同,但更简洁:
->addTrClass("success warning", "status", 0)
如果同一个类名出现多次,则表示需要符合所有条件才会添加。
->addTrClass("success", "status", 1)
->addTrClass("success", "nickname", "ming")
表示status字段为1并且nickname字段为ming时,tr标签添加success
类名。
注意,请避免条件冲突的情况,比如下面的
->addTrClass("success", "status", 1) ->addTrClass("success", "status", 0)
表示status字段为1并且为0时,tr标签添加success
类名。这明显是无效的,因为status字段不可能同时满足这两个条件。
高级用法
如果以上用法还不满足需求,可以使用高级方法,自己定义一个方法来处理,只要结果返回true则表示添加对应的类名,返回false则不添加。
->addTrClass("warning", function ($data) {
return $data["status"] == 1 ? true : false;
})
该方法有一个变量,是当前行的所有字段数据。以上表示字段status为1时,tr标签添加warning类名,否则不添加。
提示:不建议在方法内进行数据库查询操作,避免频繁读取,可以通过外部传入参数的方式。
$list_status = ["a", "b", "c"];
->addTrClass("warning", function ($data, $list_status) {
return $data["status"] == 1 ? true : false;
}, $list_status)