title; $orderField = $request->orderField; $orderDirection = $request->orderDirection; $numPerPage = $request->numPerPage ?: 30; $type = 'notices'; $articles = Article::where('type', $type) ->when($title, function ($query) use ($title) { $query->where('title', 'like', "%{$title}%"); }) ->when($orderField, function ($query) use ($orderField, $orderDirection) { $query->orderBy($orderField, $orderDirection); })->paginate($numPerPage); return view('Admin::articles.index', compact('articles', 'type')); } public function news(Request $request) { $title = $request->title; $orderField = $request->orderField; $orderDirection = $request->orderDirection; $numPerPage = $request->numPerPage ?: 30; $type = 'news'; $articles = Article::where('type', $type) ->when($title, function ($query) use ($title) { $query->where('title', 'like', "%{$title}%"); }) ->when($orderField, function ($query) use ($orderField, $orderDirection) { $query->orderBy($orderField, $orderDirection); })->paginate($numPerPage); return view('Admin::articles.index', compact('articles', 'type')); } public function create(Request $request) { return view('Admin::articles.create'); } public function store(Request $request) { $validator = Validator::make($request->all(), [ 'title' => 'required|max:100', 'description' => 'required|max:200', 'content' => 'required', 'storage_id' => 'required', ], [ 'title.required' => '名称必须填写', 'title.max' => '名称长度应在:max以内', 'description.required' => '简介必须填写', 'content.required' => '内容必须填写', 'storage_id.required' => '标题图必须上传', ]); if ($validator->fails()) { return $this->error($validator->errors()->first()); } if (Article::create($request->all())) { return $this->success('新增文章成功', 'close'); } else { return $this->error(); } } public function edit(Article $article) { return view('Admin::articles.edit', compact('article')); } public function update(Request $request, Article $article) { $validator = Validator::make($request->all(), [ 'title' => 'required|max:100', 'description' => 'required|max:200', 'content' => 'required', 'storage_id' => 'required', ], [ 'title.required' => '名称必须填写', 'title.max' => '名称长度应在:max以内', 'description.required' => '简介必须填写', 'content.required' => '内容必须填写', 'storage_id.required' => '标题图必须上传', ]); $data = $request->all(); $article->update($data); return $this->success('', 'close'); } public function destroy(Article $article) { if ($article->delete()) { return $this->success(); } else { return $this->error(); } } }