添加顶部下拉筛选

addTopSelect('表单项名', '第一个下拉菜单项标题', '选项' [, '默认选项', '忽略参数'])

1.0.5版本开始支持

比如:

  1. $list_role = Db::name('admin_role')->column('id,name');
  2. ->addTopSelect('role', '角色', $list_role)

添加顶部下拉筛选 - 图1

默认选项

  1. $list_role = Db::name('admin_role')->column('id,name');
  2. ->addTopSelect('role', '角色', $list_role, 2)

表示默认选中值为2的选项。

提示,这里所设置的默认值,只是页面默认显示指定的选项。你应该在查询前把默认值带入->where(),比如

  1. // 获取查询条件
  2. $map = $this->getMap();
  3. if (empty($map) || !isset($map['role'])) {
  4. $map['role'] = 2;
  5. }
  6. // 数据列表
  7. $data_list = UserModel::where($map)->order('sort,id desc')->paginate();
  8. $list_role = Db::name('admin_role')->column('id,name');
  9. // 使用ZBuilder快速创建数据表格
  10. return ZBuilder::make('table')
  11. ->addColumns([ // 批量添加列
  12. ['id', 'ID'],
  13. ['username', '用户名'],
  14. ['nickname', '昵称'],
  15. ['status', '状态', 'switch'],
  16. ['right_button', '操作', 'btn']
  17. ])
  18. ->addTopSelect('role', '角色', $list_role, 2)
  19. ->fetch();

忽略参数

有些情况下,某些下拉筛选是有上下级关系的,比如省份和城市,那么我们需要给省份添加一个忽略参数,也就是省份的url要忽略城市。

  1. ->addTopSelect('province', '省份', $list_province, '', 'city')
  2. ->addTopSelect('city', '城市', $list_city)

这样的话,当我们选择某个省份的时候,不会把城市的参数带进url,以免查询结果不正确。

也可以忽略多个参数,参数间用逗号隔开。

  1. ->addTopSelect('province', '省份', $list_province, '', 'city,area')
  2. ->addTopSelect('city', '城市', $list_city, '', 'area')
  3. ->addTopSelect('area', '地区', $list_area)