![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mcoil.corals.io/app/Http/Controllers/Admin/Categories/ |
<?php namespace App\Http\Controllers\Admin\Categories; use App\Shop\Categories\Repositories\CategoryRepository; use App\Shop\Categories\Repositories\Interfaces\CategoryRepositoryInterface; use App\Http\Controllers\Admin\Categories\Requests\CreateCategoryRequest; use App\Http\Controllers\Admin\Categories\Requests\UpdateCategoryRequest; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use App\Shop\Categories\Category; class CategoryController extends Controller { /** * @var CategoryRepositoryInterface */ private $categoryRepo; /** * CategoryController constructor. * * @param CategoryRepositoryInterface $categoryRepository */ public function __construct(CategoryRepositoryInterface $categoryRepository) { $this->categoryRepo = $categoryRepository; } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $list = $this->categoryRepo->rootCategories('created_at', 'desc'); return view('admin.categories.list', [ 'categories' => $list->all() ]); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // Get the existing category sequence $existingCategories = DB::table('categories')->whereNotNull('featured_category_sequence') ->pluck('id', 'featured_category_sequence') ->all(); return view('admin.categories.create', [ 'categories' => $this->categoryRepo->listCategories('name', 'asc'), 'existingCategories' => $existingCategories ]); } /** * Store a newly created resource in storage. * * @param CreateCategoryRequest $request * @return \Illuminate\Http\Response */ public function store(CreateCategoryRequest $request) { $this->categoryRepo->createCategory($request->except('_token', '_method')); return redirect()->route('admin.categories.index')->with('message', 'Category created successfully.'); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { $category = $this->categoryRepo->findCategoryById($id); $cat = new CategoryRepository($category); return view('admin.categories.show', [ 'category' => $category, 'categories' => $category->children, 'products' => $cat->findProducts() ]); } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { return view('admin.categories.edit', [ 'categories' => $this->categoryRepo->listCategories('name', 'asc', $id), 'category' => $this->categoryRepo->findCategoryById($id) ]); } /** * Update the specified resource in storage. * * @param UpdateCategoryRequest $request * @param int $id * @return \Illuminate\Http\Response */ public function update(UpdateCategoryRequest $request, $id) { $category = $this->categoryRepo->findCategoryById($id); $update = new CategoryRepository($category); $update->updateCategory($request->except('_token', '_method')); //$request->session()->flash('message', 'Category updated successfully.'); return redirect()->route('admin.categories.index')->with('message', 'Category updated successfully.'); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy(Request $request, int $id) { $id = $request->id; $category = $this->categoryRepo->findCategoryById($id); $category->products()->sync([]); $category->delete(); //request()->session()->flash('message', 'Delete successful'); return redirect()->back(); } /** * @param Request $request * @return \Illuminate\Http\RedirectResponse */ public function removeImage(Request $request) { $id= $request->input('id'); $cat = Category::where('id',$id)->first(); if($cat){ \Storage::disk('public')->delete($cat->cover); Category::where('id',$id)->update(['cover'=>'']); return 1; }else{ return 0; } //$this->categoryRepo->deleteFile($request->only('category')); //request()->session()->flash('message', 'Image delete successful'); //return redirect()->route('admin.categories.edit', $request->input('category')); } }