title; $parent_id = $request->get('parent_id', 0) ?: 0; $orderField = $request->orderField; $orderDirection = $request->orderDirection; $numPerPage = $request->numPerPage ?: 30; $categories = Category::where('parent_id', $parent_id) ->when($title, function ($query) use ($title) { $query->where('title', 'like', "%{$title}%"); }) ->when($orderField, function ($query) use ($orderField, $orderDirection) { $query->orderBy($orderField, $orderDirection); })->paginate($numPerPage); $categoryTree = Category::with(['children'])->where('parent_id', 0)->orderBy('sort', 'asc')->get(); return view('Admin::categories.index', compact('categoryTree', 'categories')); } public function create() { $topCates = Category::treeShow(); return view('Admin::categories.create', compact('topCates')); } public function store(Request $request) { $validator = Validator::make($request->all(), [ 'title' => 'required|max:16', 'sort' => 'required|integer', ], [ 'title.required' => '分类名称必须填写', 'title.max' => '分类名称长度应在:max以内', 'sort.required' => '分类排序必须填写', 'sort.integer' => '分类排序只能是数字', ]); if ($validator->fails()) { return $this->error($validator->errors()->first()); } if (Category::create($request->all())) { return $this->success('新增分类成功', 'close'); } else { return $this->error(); } } public function edit(Category $category) { $topCates = Category::treeShow($category->id); return view('Admin::categories.edit', compact('topCates', 'category')); } public function update(Request $request, Category $category) { $validator = Validator::make($request->all(), [ 'title' => 'required|max:16', 'sort' => 'required|integer', ], [ 'title.required' => '分类名称必须填写', 'title.max' => '分类名称长度应在:max以内', 'sort.required' => '分类排序必须填写', 'sort.integer' => '分类排序只能是数字', ]); if ($validator->fails()) { return $this->error($validator->errors()->first()); } if ($category->update($request->all())) { return $this->success('编辑分类成功', 'close'); } else { return $this->error(); } } public function destroy(Category $category) { $exclude_ids = [1, 2]; if (in_array($category->id, $exclude_ids)) { return $this->error('此分类不能删除'); } if ($category->delete()) { return $this->success(); } else { return $this->error(); } } }