render('product::products.index'); } public function create() { abort_if(Gate::denies('create_products'), 403); return view('product::products.create'); } public function store(ProductCreateRequest $request) { $product = Product::create($request->except('image')); if ($request->has('image')) { $tempFile = Upload::where('folder', $request->image)->first(); if ($tempFile) { $product->addMedia(Storage::path('public/temp/' . $request->image . '/' . $tempFile->filename))->toMediaCollection(); Storage::deleteDirectory('public/temp/' . $request->image); $tempFile->delete(); } } toast('Product Created!', 'success'); return redirect()->route('products.index'); } public function show(Product $product) { abort_if(Gate::denies('show_products'), 403); return view('product::products.show', compact('product')); } public function edit(Product $product) { abort_if(Gate::denies('edit_products'), 403); return view('product::products.edit', compact('product')); } public function update(ProductUpdateRequest $request, Product $product) { $product->update($request->except('image')); if ($request->has('image')) { $tempFile = Upload::where('folder', $request->image)->first(); if ($product->getFirstMedia()) { $product->getFirstMedia()->delete(); } if ($tempFile) { $product->addMedia(Storage::path('public/temp/' . $request->image . '/' . $tempFile->filename))->toMediaCollection(); Storage::deleteDirectory('public/temp/' . $request->image); $tempFile->delete(); } } toast('Product Updated!', 'info'); return redirect()->route('products.index'); } public function destroy(Product $product) { abort_if(Gate::denies('delete_products'), 403); $product->delete(); toast('Product Deleted!', 'warning'); return redirect()->route('products.index'); } }