header('说明页分类') ->description('系统分类不能删除') ->body($this->grid()); } /** * Show interface. * * @param mixed $id * @param Content $content * @return Content */ public function show($id, Content $content) { return $content ->header('说明页分类') ->description(' ') ->body($this->detail($id)); } /** * Edit interface. * * @param mixed $id * @param Content $content * @return Content */ public function edit($id, Content $content) { return $content ->header('说明页分类') ->description(' ') ->body($this->form()->edit($id)); } /** * Create interface. * * @param Content $content * @return Content */ public function create(Content $content) { return $content ->header('说明页分类') ->description(' ') ->body($this->form()); } /** * Make a grid builder. * * @return Grid */ protected function grid() { $grid = new Grid(new ExplainCategory); $grid->model()->orderBy('list_order', 'DESC')->orderBy('created_at', 'DESC'); $grid->category_name('分类名称'); $grid->admin_set('类型')->display(function ($admin_set) { return $admin_set? "系统分类":"自定义分类"; }); $grid->list_order('排序'); $grid->created_at('添加时间'); $grid->tools(function (Grid\Tools $tools) { if (Admin::user()->can('content_explain_category_delete')) { $tools->batch(function ($batch) { $batch->disableDelete(false); }); } }); if (Admin::user()->can('content_explain_category_create')) { $grid->disableCreateButton(false); } $grid->actions(function ($actions) { if (Admin::user()->can('content_explain_category_edit')) { $actions->disableEdit(false); } if (Admin::user()->can('content_explain_category_delete') && $actions->row['admin_set']!=1) { $actions->disableDelete(false); } }); $grid->disableFilter(); return $grid; } /** * Make a show builder. * * @param mixed $id * @return Show */ protected function detail($id) { $show = new Show(ExplainCategory::findOrFail($id)); $show->id('ID'); $show->category_name('分类名称'); $show->admin_set('是否系统分类'); $show->list_order('排序'); $show->created_at('添加时间'); $show->updated_at('更新时间'); return $show; } /** * Make a form builder. * * @return Form */ protected function form() { $form = new Form(new ExplainCategory); $form->text('category_name', '分类名称')->rules('required|max:10', array('required'=>'分类名称不能为空。','max'=>'分类名称长度不能大于25个字符。'))->setWidth(4)->setMustMark(); $form->number('list_order', '排序')->min(0)->default(0)->rules('required|min:0', array('required'=>'排序不能为空。','min'=>'排序不能小于0'))->help('(数字越大越靠前)'); $form->hidden('admin_set')->value(0); $form->footer(function ($footer) { $footer->disableViewCheck(); $footer->disableEditingCheck(); $footer->disableCreatingCheck(); $footer->disableReset(); }); $form->tools(function (Form\Tools $tools) { $tools->disableDelete(); $tools->disableView(); }); return $form; } /* * 重写批量删除方法 */ public function destroy($id) { $id_arr = explode(',', $id); $admin_set_cates = ExplainCategory::where(array('admin_set'=>'1'))->select('id')->get()->pluck('id')->toArray(); foreach ($id_arr as $k => $v) { if (in_array($v, $admin_set_cates)) { unset($id_arr[$k]); } } $filter_id = implode(',', $id_arr); if ($this->form()->destroy($filter_id)) { $data = [ 'status' => true, 'message' => trans('admin.delete_succeeded'), ]; } else { $data = [ 'status' => false, 'message' => trans('admin.delete_failed'), ]; } return response()->json($data); } }