# select 树选择
这个可参考系统管理模块中的节点编辑实例
![](https://box.kancloud.cn/2fdb9ebb378592e48ce71c22282c4a05_602x346.png)
这个可以在分类模型中直接参考节点管理模块中的方法
~~~
在模型 mdoel/ Category.php中添加 如下方法,表中需要有id,pid,name字段
/**
* 获取树形角色
* @param null $id 需要隐藏的角色id
* @param string $default 默认第一个菜单项,默认为“顶级角色”,如果为false则不显示,也可传入其他名称
* @author gyhong <63453409@qq.com>
* @return mixed
*/
public static function getTree($id = null, $default = '')
{
$result[0] = '顶级分类';
$where['status'] = ['eq', 1];
// $where['status'] = ['egt', 0];
// 排除指定菜单及其子菜单
if ($id !== null) {
$hide_ids = array_merge([$id], self::getChildsId($id));
$where['id'] = ['notin', $hide_ids];
}
// 获取菜单
$roles = Tree::config(['title' => 'name'])->toList(self::where($where)->column('id,pid,name'));
foreach ($roles as $role) {
$result[$role['id']] = $role['title_display'];
}
// 设置默认菜单项标题
if ($default != '') {
$result[0] = $default;
}
// 隐藏默认菜单项
if ($default === false) {
unset($result[0]);
}
return $result;
}
~~~
然后在table中或者form中使用方法如下
~~~
return ZBuilder::make('form')
->setPageTitle('导入指定型号配件信息')
->addFormItem('select', 'model', '选择导出型号', '',\app\pros\model\Category::getTree(),0)
->setBtnTitle('submit', '导出')
->hideBtn('back')
->isAjax(false)
->fetch();
table中类似,略
~~~