header('分类') ->row(function (Row $row) { $row->column(6, $this->treeView()); $row->column(6, function (Column $column) { $form = new WidgetsForm(); $form->select('parent_id', '上级分类')->options(Category::selectOptions(function ($model) { return $model->where('status', 1); }, '一级分类')); $form->select('type', '分类类型')->options(['goods' => '商品', 'article' => '文章']); $form->text('title', '分类名称')->rules('required'); $form->textarea('description', '分类简介')->rows(4)->rules('nullable'); $form->image('cover', 'Logo'); $form->number('order', '排序')->default(0); $form->switch('status', '显示')->states()->default(1); $form->action('/admin/categories'); $column->append((new Box('新增分类', $form))->style('success')); }); }); } /** * @return \Encore\Admin\Tree */ protected function treeView() { return Category::tree(function (Tree $tree) { $tree->disableCreate(); $tree->branch(function ($branch) { if ($branch['status'] == 1) { $payload = " "; } else { $payload = " "; } $payload .= " [ID:{$branch['id']}] - "; $payload .= " {$branch['title']} "; $payload .= " {$branch['description']}"; return $payload; }); }); } /** * Show interface. * * @param mixed $id * @param Content $content * @return Content */ public function show($id, Content $content) { return $content ->header('Detail') ->description('description') ->body($this->detail($id)); } /** * Edit interface. * * @param mixed $id * @param Content $content * @return Content */ public function edit($id, Content $content) { return $content ->header('Edit') ->description('description') ->body($this->form()->edit($id)); } /** * Create interface. * * @param Content $content * @return Content */ public function create(Content $content) { return $content ->header('Create') ->description('description') ->body($this->form()); } /** * Make a grid builder. * * @return Grid */ protected function grid() { $grid = new Grid(new Category); $grid->id('Id'); $grid->title('分类名称'); $grid->description('分类简介'); $grid->order('排序'); $grid->status('显示')->switch(); $grid->created_at('创建时间'); return $grid; } /** * Make a show builder. * * @param mixed $id * @return Show */ protected function detail($id) { $show = new Show(Category::findOrFail($id)); $show->id('Id'); $show->created_at('Created at'); $show->updated_at('Updated at'); return $show; } /** * Make a form builder. * * @return Form */ protected function form() { $form = new Form(new Category); $form->select('parent_id', '上级分类')->options(Category::selectOptions(function ($model) { return $model->where('status', 1); }, '一级分类')); $form->select('type', '分类类型')->options(['goods' => '商品', 'article' => '文章'])->rules('required'); $form->text('title', '分类名称')->rules('required'); $form->textarea('description', '分类简介')->rows(4)->rules('nullable'); $form->image('cover', 'Logo'); $form->number('order', '排序')->default(0); $form->switch('status', '显示')->states()->default(1); return $form; } }