🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 添加列表搜索功能 ### 查询构造器 先看示例代码: ~~~ list($data_list,$total) = model('action')// ->search() //添加搜索查询 ->getListByPage($map,true,'id desc'); ~~~ 从上面代码中看到链式方法`->search()`,这个就是添加查询功能的。 我们先看下搜索查询方法的源码,如下 ~~~ /** * 设置搜索 * @param [type] $fields 字段名(多个字段用|分开) * @param string $rule 匹配规则 * @return [type] [description] * @date 2018-02-06 * @author 心云间、凝听 <981248356@qq.com> */ public function search($fields='title',$rule='%[KEYWORD]%') { if (strpos($rule, '[KEYWORD]')!==false) { $keyword = input('param.keyword',false);//关键字 if (!empty($keyword)) { $rule = str_replace('[KEYWORD]', $keyword, $rule); $this->where($fields,'like',$rule); } } return $this; } ~~~ 从代码中可以看出,search方法有两个参数。 | 参数 | 必须 | 类型 | 说明 | | --- | --- | --- | --- | | fields | 否 | string | 设置查询字段,多个字段如:name|title | | rule | 否 | string | 设置查询规则 | ### 使用 调用搜索查询方法可以在多个场景中,如: ~~~ //例1: list($data_list,$total) = model('action')->search()->getListByPage($map,'id,name,title,depend_type,depend_flag,log,remark,status','id desc'); //例2: $data_list = model('user')->search('title|name')->getList(); ~~~ ### 效果图: ![](https://box.kancloud.cn/89414a9605f6e6bc0f2a13cc93b3ac2b_886x152.jpg) ### 构建器列表添加自定义搜索 ~~~ ->setSearch('custom') //添加搜索框 ~~~ ### 注意 1.必须定义模型类,并且模型类继承common/model/Base.php模型基类。