为每一个Model中创建一个能够自动生成select的option的方法就可以了。
例如为User.php这个model创建生成option的方法
/** * 获取用户列表-select-option * @return User[]|\Illuminate\Database\Eloquent\Collection */ public static function getSelectOptions() { $options = DB::table('users')->select('id','name as text')->get(); $selectOption = []; foreach ($options as $option){ $selectOption[$option->id] = $option->text; } return $selectOption; }
在对应的控制器中使用比如Article的控制器中
protected function form() { return Admin::form(Article::class, function (Form $form) { $form->display('id', 'ID'); $form->text('title','标题')->rules('required|min:10'); $form->textarea('description','摘要简介'); $form->ueditor('body','正文')->rules('min:10'); $form->select('user_id','作者')->options(User::getSelectOptions()); (略)
文档中说的使用接口方式,而且返回文档中的格式,是不能解决自动选中原值的,只能是空白的。
$form->select('user_id','作者')->options(admin_base_path('/api/users'));