## setSearchArea(搜索参数, 提交地址) 从V1.1.0版本开始,支持设置搜索区域,目前支持以下类型: | 类型 | 标识符 | | --- | --- | | 单行文本框 | text | | 下拉框 | select | | 日期时间 | datetime | 用法如下: ~~~ ->setSearchArea([ ['text', 'username', '昵称'], ]) ~~~ 不管是哪种类型,前面五个参数的含义是相同的 第一个参数:类型 第二个参数:字段名 第三个参数:标签名 第四个参数:匹配方式(默认为“eq”,也可以是“neq”,“=”,“<>”等等) 第五个参数:默认值 第六个参数:额外参数(不同类型,用途不同) ### text(单行文本框) 一般用法 ~~~ ->setSearchArea([ ['text', 'username', '昵称'], ]) ~~~ 默认的匹配方式是“eq”,也就是等于,如果需要修改为不等于,可以明确指定 ~~~ ->setSearchArea([ ['text', 'username', '昵称', 'neq'], ]) ~~~ 改为模糊匹配 ~~~ ->setSearchArea([ ['text', 'username', '昵称', 'like'], ]) ~~~ 也可以设置默认值 ~~~ ->setSearchArea([ ['text', 'username', '昵称', '', 'ming'], ]) ~~~ >[danger] 需要注意的是,这里的默认值仅用于默认显示在单行文本框内,并不会默认按这个值搜索,需要自行在查询数据时带入默认值。 ~~~ $map = $this->getMap(); if (!isset($map['username'])) { $map['username'] = 'ming'; } $data = User::where($map)->paginate(); return ZBuilder::make('table') ->addColumns([ // 批量添加列 ['id', 'ID'], ['username', '用户名'], ['nickname', '昵称'], ['email', '邮箱'], ['mobile', '手机号'], ['create_time', '创建时间', 'datetime'], ['status', '状态', 'switch'], ['right_button', '操作', 'btn'] ]) ->setSearchArea([ ['text', 'username', '昵称', '', 'ming'], ]) ->fetch(); ~~~ 默认每个组件的宽度是占1/4,也可以自己设置 ~~~ ->setSearchArea([ ['text:6', 'username', '昵称', 'neq'], ]) ~~~ 如果数据是使用【视图查询】获得的,有时候需要指定表名 ~~~ ->setSearchArea([ ['text', 'admin_user.username', '昵称'], ]) ~~~ ### select(下拉框) **一般用法**,第六个参数传入一个一维数组。 ~~~ ->setSearchArea([ ['select', 'username', '用户名', '', '', ['test' => 'test', 'ming' => 'ming']], ]) ~~~ **设置默认值** ~~~ ->setSearchArea([ ['select', 'username', '用户名', '', 'test', ['test' => 'test', 'ming' => 'ming']], ]) ~~~ **设置宽度** ~~~ ->setSearchArea([ ['select:4', 'username', '用户名', '', '', ['test' => 'test', 'ming' => 'ming']], ]) ~~~ **指定表名** ~~~ ->setSearchArea([ ['select', 'admin_user.username', '用户名', '', '', ['test' => 'test', 'ming' => 'ming']], ]) ~~~ ### daterange(日期范围) **一般用法** ~~~ ->setSearchArea([ ['daterange', 'create_time', '创建时间'], ]) ~~~ **修改匹配方式** 默认匹配方式为在某个时间段内,也可以设置为不在某个时间段内 ~~~ ->setSearchArea([ ['daterange', 'create_time', '创建时间', 'not between'], ]) ~~~ **设置默认值** ~~~ ->setSearchArea([ ['daterange', 'create_time', '创建时间', '', '2017-11-10 - 2017-11-15'], ]) ~~~ >[danger] 这里的默认值仅作为显示,默认查询数据时,需要自行添加默认值查询,具体请参考上的“text”类型用法。 **设置时间格式** ~~~ ->setSearchArea([ ['daterange', 'create_time', '创建时间', '', '', ['format' => 'YYYY-MM-DD HH:mm']], ]) ~~~ 更多格式请参考 [momentjs](http://momentjs.com/docs/#/displaying/) **设置可选日期范围** ~~~ ->setSearchArea([ ['daterange', 'create_time', '创建时间', '', '', ['min-date' => '2017-11-01', 'max-date' => '2017-12-30']], ]) ~~~ 表示用户只能在2017-11-01至2017-12-30之间选择。 **开启时间选择** 默认情况下,时间选择是没有开启的,如果需要开启时间选择,可以设置为 ~~~ ->setSearchArea([ ['daterange', 'create_time', '创建时间', '', '', ['time-picker' => 'true']], ]) ~~~ 开启时间选择后,默认不是24小时制,如果需要设置为24小时制,设置为 ~~~ ->setSearchArea([ ['daterange', 'create_time', '创建时间', '', '', ['time-picker' => 'true', 'time-picker24-hour' => 'true']], ]) ~~~ 如果需要精确到秒,可以设置为 ~~~ ->setSearchArea([ ['daterange', 'create_time', '创建时间', '', '', ['time-picker' => 'true', 'time-picker24-hour' => 'true', 'time-picker-seconds' => 'true']], ]) ~~~ 更多参数请参考[http://www.daterangepicker.com/#options](http://www.daterangepicker.com/#options) >[info] 比如要设置参数“maxDate”,那么填写的时候要填写为“max-date”这种方式。