/** * Store a newly created resource in storage. * * @param Request $request * @return Response */ public function store(CatCreateRequest $request) { // dd($request->input('sub_cats')); $catName = $request->input('name'); if ($existingCat = Cat::where('name', $catName)->first()) { $existingCat->meta_description = $request->input('meta_description'); $existingCat->image_class = $request->input('cat_image'); $existingCat->save(); if ($request->input('subcat')) { $newSub = new SubCat(); $newSub->name = $request->input('subcat'); $newSub->image_class = $request->input('sub_image'); $newSub->cat_id = $existingCat->id; } return redirect('/admin/cat')->withSuccess("The Category '{$existingCat->name}' has been updated."); } else { $category = new Cat(); $category->name = $request->input('name'); $category->meta_description = $request->input('meta_description'); $category->image_class = $request->input('cat_image'); $category->save(); if ($request->input('subcat')) { $freshSub = new SubCat(); $freshSub->name = $request->input('subcat'); $freshSub->image_class = $request->input('sub_image'); $freshSub->cat_id = $category->id; $freshSub->save(); } return redirect('/admin/cat')->withSuccess("The Category '{$category->name}' has been created."); } }
/** * Update the specified resource in storage. * * @param Request $request * @param int $id * @return Response */ public function update(CatUpdateRequest $request, $id) { $cat = Cat::findOrFail($id); $cat->name = $request->input('name'); $cat->meta_description = $request->input('meta_description'); $cat->image_class = $request->input('image_class'); $cat->save(); $sub_cats = $request->input('sub_cats'); $real = []; $cat->subcats()->delete(); foreach ($sub_cats as $sub) { if ($existingCat = SubCat::where('name', $sub)->first()) { $real[] = $existingCat; } else { $newCat = new SubCat(); $newCat->name = $sub; $newCat->save(); $real[] = $newCat; } } $cat->subcats()->saveMany($real); return redirect("/admin/cat/")->withSuccess("Changes saved."); }