Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
core
/
app
/
Http
/
Controllers
/
Admin
:
ProductCategoryController.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace App\Http\Controllers\Admin; use App\Models\Language; use Illuminate\Support\Str; use Illuminate\Http\Request; use App\Models\ProductCategory; use App\Http\Controllers\Controller; use App\Models\Product; class ProductCategoryController extends Controller { public $lang; public function __construct() { $this->lang = Language::where('is_default',1)->first(); } public function productcategory(Request $request){ $lang = Language::where('code', $request->language)->first()->id; $pcategory = ProductCategory::where('language_id',$lang)->orderBy('id', 'desc')->get(); return view('admin.product.product-category.index', compact('pcategory')); } public function add(){ return view('admin.product.product-category.add'); } public function store(Request $request){ $request->validate([ 'name' => 'required|unique:product_categories,name|max:150', 'language_id' => 'required', 'image' => 'required|mimes:jpeg,jpg,png', 'status' => 'required', ]); $category = new ProductCategory(); if($request->hasFile('image')){ $file = $request->file('image'); $extension = $file->getClientOriginalExtension(); $image = 'portfolio_'.time().rand().'.'.$extension; $file->move('assets/front/img/', $image); $category->image = $image; } $category->language_id = $request->language_id; $category->name = $request->name; $category->slug = Str::slug($request->name, "-"); $category->status = $request->status; $category->save(); $notification = array( 'messege' => 'Product Category Added successfully!', 'alert' => 'success' ); return redirect()->back()->with('notification', $notification); } public function delete($id){ $category = ProductCategory::findOrFail($id); $products = Product::where('category_id', $id)->get(); if($products->count() >= 1){ $notification = array( 'messege' => 'First Delete Products Under This Category !', 'alert' => 'warning' ); return redirect()->back()->with('notification', $notification); } $category->delete(); $notification = array( 'messege' => 'Product Category Deleted successfully!', 'alert' => 'success' ); return redirect()->back()->with('notification', $notification); } public function edit($id){ $category = ProductCategory::find($id); return view('admin.product.product-category.edit', compact('category')); } public function update(Request $request, $id){ $id = $request->id; $request->validate([ 'name' => 'required|unique:product_categories,name,'.$id, 'image' => 'mimes:jpeg,jpg,png', 'status' => 'required', ]); $category = ProductCategory::find($id); if($request->hasFile('image')){ @unlink('assets/front/img/'. $category->image); $file = $request->file('image'); $extension = $file->getClientOriginalExtension(); $image = 'portfolio_'.time().rand().'.'.$extension; $file->move('assets/front/img/', $image); $category->image = $image; } $category->language_id = $request->language_id; $category->name = $request->name; $category->slug = Str::slug($request->name, "-"); $category->status = $request->status; $category->save(); $notification = array( 'messege' => 'Product Category Updated successfully!', 'alert' => 'success' ); return redirect(route('admin.product.category').'?language='.$this->lang->code)->with('notification', $notification); } public function makePopular(Request $request){ $category = ProductCategory::find($request->category_id); $category->is_popular = $request->is_popular; $category->save(); $notification = array( 'messege' => 'Data Updated successfully!', 'alert' => 'success' ); return redirect()->back()->with('notification', $notification); } public function makeFeatured(Request $request){ $category = ProductCategory::find($request->category_id); $category->is_feature = $request->is_feature; $category->save(); $notification = array( 'messege' => 'Data Updated successfully!', 'alert' => 'success' ); return redirect()->back()->with('notification', $notification); } }