Advertisement
faiz14

CategoryController

Feb 8th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.82 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Http\Controllers;
  4.  
  5. use Illuminate\Http\Request;
  6. use Illuminate\Validation\Rule;
  7.  
  8. class CategoryController extends Controller
  9. {
  10.     /**
  11.      * Display a listing of the resource.
  12.      *
  13.      * @return \Illuminate\Http\Response
  14.      */
  15.  
  16.     public function __construct()
  17.     {
  18.         $this->middleware('auth');
  19.     }
  20.  
  21.     public function index(Request $request)
  22.     {
  23.         $categories = \App\Category::paginate(10);
  24.  
  25.         $filterKeyword = $request->get('name');
  26.  
  27.         if ($filterKeyword) {
  28.             $categories = \App\Category::where('name', 'LIKE', "%$filterKeyword%")->paginate(10);
  29.         }
  30.  
  31.         return view('categories.index', ['categories' => $categories]);
  32.     }
  33.  
  34.     /**
  35.      * Show the form for creating a new resource.
  36.      *
  37.      * @return \Illuminate\Http\Response
  38.      */
  39.     public function create()
  40.     {
  41.         return view('categories.create');
  42.     }
  43.  
  44.     /**
  45.      * Store a newly created resource in storage.
  46.      *
  47.      * @param  \Illuminate\Http\Request  $request
  48.      * @return \Illuminate\Http\Response
  49.      */
  50.     public function store(Request $request)
  51.     {
  52.         $name = $request->get('name');
  53.  
  54.         $new_category = new \App\Category;
  55.         $new_category->name = $name;
  56.  
  57.         if ($request->file('image')) {
  58.             $image_path = $request->file('image')->store('category_image', 'public');
  59.             $new_category->image = $image_path;
  60.         }
  61.  
  62.         $new_category->created_by = \Auth::user()->id;
  63.         $new_category->slug = str_slug($name, '-');
  64.         $new_category->save();
  65.  
  66.         return redirect()->route('categories.create')->with('status', 'Category successfully created!!!');
  67.  
  68.     }
  69.  
  70.     /**
  71.      * Display the specified resource.
  72.      *
  73.      * @param  int  $id
  74.      * @return \Illuminate\Http\Response
  75.      */
  76.     public function show($id)
  77.     {
  78.         $category = \App\Category::findOrFail($id);
  79.  
  80.         return view('categories.show', ['category' => $category]);
  81.     }
  82.  
  83.     /**
  84.      * Show the form for editing the specified resource.
  85.      *
  86.      * @param  int  $id
  87.      * @return \Illuminate\Http\Response
  88.      */
  89.     public function edit($id)
  90.     {
  91.         $category_to_edit = \App\Category::findOrFail($id);
  92.  
  93.         return view('categories.edit', ['category' => $category_to_edit]);
  94.     }
  95.  
  96.     /**
  97.      * Update the specified resource in storage.
  98.      *
  99.      * @param  \Illuminate\Http\Request  $request
  100.      * @param  int  $id
  101.      * @return \Illuminate\Http\Response
  102.      */
  103.     public function update(Request $request, $id)
  104.     {
  105.         $category = \App\Category::findOrFail($id);
  106.  
  107.         \Validator::make($request->all(), [
  108.             "name" => "required|min:3|max:20",
  109.             "image" => "required",
  110.             "slug" => [
  111.                 "required",
  112.                 Rule::unique("categories")->ignore($category->slug, "slug")
  113.             ]
  114.         ])->validate();
  115.  
  116.         $name = $request->get('name');
  117.         $slug = $request->get('slug');
  118.  
  119.         $category->name = $name;
  120.         $category->slug = $slug;
  121.  
  122.         if ($request->file('image')) {
  123.             if ($category->image && file_exists(storage_path('app/public/'. $category->image))) {
  124.                 \Storage::delete('public/'. $category->image);
  125.             }
  126.             $new_image = $request->file('image')->store('category_image', 'public');
  127.         }
  128.  
  129.         $category->updated_by = \Auth::user()->id;
  130.         $category->slug = str_slug($name);
  131.  
  132.         $category->save();
  133.  
  134.         return view('categories.edit', ['id' => $id])->with('status', 'Category Successfully updated');
  135.     }
  136.  
  137.     /**
  138.      * Remove the specified resource from storage.
  139.      *
  140.      * @param  int  $id
  141.      * @return \Illuminate\Http\Response
  142.      */
  143.     public function destroy($id)
  144.     {
  145.         //
  146.     }
  147. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement