²é¿´/±à¼ ´úÂë
ÄÚÈÝ
<?php namespace App\Http\Controllers\Blog; use App\Category; use App\Http\Controllers\Controller; use App\Post; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; class CategoryController extends Controller { public function index() { $categories = Category::orderBy('id', 'desc')->get(); return view('blog.categories.index')->with([ 'categories' => $categories ]); } public function store(Request $request) { $rules = [ "name" => 'required|unique:categories', ]; $messages = [ 'name.required' => 'Category name is required!', ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return back() ->withErrors($validator) ->withInput(); } $category = new Category(); $category->name = $request->name; if ($category->save()) { toast('Category has been saved successfully!','success','top-right'); return back(); } } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param \App\Models\Category $category * @return \Illuminate\Http\Response */ public function update(Request $request, Category $category) { $rules = [ "name" => 'required', ]; $messages = [ 'name.required' => 'Category name is required!', ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return back() ->withErrors($validator) ->withInput(); } $category = Category::find($request->id); $category->name = $request->name; if ($category->save()) { toast('Category has been updated successfully!','success','top-right'); return back(); } } /** * Remove the specified resource from storage. * * @param \App\Models\Category $category * @return \Illuminate\Http\Response */ public function destroy(Category $category, Request $request) { $category->find($request->id)->delete(); // find all posts and reset to uncategorized $posts = Post::where('category_id', $request->id)->get(); if ($posts) { Post::where('category_id', $request->id)->update(['category_id' => 1]); } return response()->json([ 'success' => true ]); } }