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

添加行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标签添加successwarning类名。

与下面的写法效果相同,但更简洁:

->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)