🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 数据获取(必须) > 图片演示: ![](https://img.kancloud.cn/44/f0/44f037f445ddff9ff1fedfec096566d4_1609x739.png) > 说明: 返回表格对应条件下的数据数组。 注意:每条数据需包含`id`字段作为数据项的唯一标识。 方法:`items($callable)` * 参数 **callable** (必须),为 callable 闭包。 ```php items(function($limit_start,$limit_length,$filter,$sort){...}); ``` * 参数 * **limit_start** int 类型 查询结果起始索引值,可作为sql `limit` 的第一个参数 * **limit_length** int 类型 查询结果返回的数量,可作为sql `limit`的第二个参数 * **filter** array 类型 筛选条件集合,固定元素包含如下元素: // 当前表格状态栏key $state=$filter['state']; // 当前选中数据行id集合数组 $ids=$filter['ids']; * **sort** array 类型 排序条件集合,如: ```php ["age"=>"asc"] ``` * 返回值 array 二维数组类型 > 示例: | 状态 | 筛选表单 | 表头| | --- | --- | --- | | 正常(11) | `姓名` | `姓名`、`添加时间`| | 回收站(22) | `姓名` | `姓名`、`添加时间`| 构建上述表单。方法如下: ```php $builder=YT('general_example')->state([ 11=>'正常', 22=>'回收站' ]) ->filter(function($state){ $filter = [ 'name'=>['title'=>'姓名'] ]; return $filter; }) ->cols(function($state){ $cols = [ 'id'=>['type'=>'checkbox'], 'name'=>['title'=>'姓名'], 'create_time'=>['title'=>'添加时间', 'align'=>'center', 'hide'=>'mobile_hide_hide','templet'=>'datetime'], ]; return $cols; }) ->items(function($limit_start,$limit_length,$filter,$sort){ // 固定参数 $state=$filter['state']; $ids=$filter['ids']; // 筛选表单参数 $name=$filter['name']; $whereArr=[]; $whereArr[]=$state?['state','eq',$state]:['state','neq',DbRowState::REMOVED]; if($ids) $whereArr[]=['id','in',$ids]; if($name) $whereArr[]=['name','like','%'.$name.'%']; $orderArr=$sort+['id'=>'desc']; $items = Db::name('test')->field('*')->where($whereArr)->order($orderArr)->limit($limit_start,$limit_length)->select(); return $items; }) ```