多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 数据获取(必须) > 图片演示: ![](https://img.kancloud.cn/44/f0/44f037f445ddff9ff1fedfec096566d4_1609x739.png) > 说明: 返回表格对应条件下的数据数组。 注意:每条数据需包含`id`字段作为数据项的唯一标识。 方法:`items($callable)` * 参数 **callable** (必须),为 callable 闭包。 ```php items(function($limitStart,$limitLength,$filter,$sort){...}); ``` * 参数 * **limitStart** int 类型 查询结果起始索引值,可作为sql `limit` 的第一个参数 * **limitLength** int 类型 查询结果返回的数量,可作为sql `limit`的第二个参数 * **filter** array 类型 筛选条件集合,固定元素包含如下元素: ```php // 当前状态key值。仅在state设置时存在$filter['state'] $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($limitStart,$limitLength,$filter,$sort){ // 固定参数 $state=$filter['state']; $ids=$filter['ids']; // 筛选表单参数 $name=$filter['name']; $whereArr=[]; $whereArr[]=$state?['state','eq',$state]:['state','neq',99]; 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($limitStart,$limitLength)->select(); return $items; }) ```