column("id,name"); ->addTopSelect("role", "角色", $list_role) 默" />
牛骨文教育服务平台(让学习变的简单)

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)