addTopSelect("表单项名", "第一个下拉菜单项标题", "选项" [, "默认选项", "忽略参数"])
1.0.5版本开始支持
比如:
$list_role = Db::name("admin_role")->column("id,name");
->addTopSelect("role", "角色", $list_role)
默认选项
$list_role = Db::name("admin_role")->column("id,name");
->addTopSelect("role", "角色", $list_role, 2)
表示默认选中值为2的选项。
提示,这里所设置的默认值,只是页面默认显示指定的选项。你应该在查询前把默认值带入->where(),比如
// 获取查询条件
$map = $this->getMap();
if (empty($map) || !isset($map["role"])) {
$map["role"] = 2;
}
// 数据列表
$data_list = UserModel::where($map)->order("sort,id desc")->paginate();
$list_role = Db::name("admin_role")->column("id,name");
// 使用ZBuilder快速创建数据表格
return ZBuilder::make("table")
->addColumns([ // 批量添加列
["id", "ID"],
["username", "用户名"],
["nickname", "昵称"],
["status", "状态", "switch"],
["right_button", "操作", "btn"]
])
->addTopSelect("role", "角色", $list_role, 2)
->fetch();
忽略参数
有些情况下,某些下拉筛选是有上下级关系的,比如省份和城市,那么我们需要给省份添加一个忽略参数,也就是省份的url要忽略城市。
->addTopSelect("province", "省份", $list_province, "", "city")
->addTopSelect("city", "城市", $list_city)
这样的话,当我们选择某个省份的时候,不会把城市的参数带进url,以免查询结果不正确。
也可以忽略多个参数,参数间用逗号隔开。
->addTopSelect("province", "省份", $list_province, "", "city,area")
->addTopSelect("city", "城市", $list_city, "", "area")
->addTopSelect("area", "地区", $list_area)