## 添加行class名 (1.0.5+) >[info] 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`类名。 >[danger] 注意,请避免条件冲突的情况,比如下面的 ~~~ ->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类名,否则不添加。 >[info] 提示:不建议在方法内进行数据库查询操作,避免频繁读取,可以通过外部传入参数的方式。 ~~~ $list_status = ['a', 'b', 'c']; ->addTrClass('warning', function ($data, $list_status) { return $data['status'] == 1 ? true : false; }, $list_status) ~~~