ok
Direktori : /home2/selectio/www/limpiar.in.net/updates/app/Http/Controllers/ |
Current File : /home2/selectio/www/limpiar.in.net/updates/app/Http/Controllers/AttributeController.php |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\Attribute; use App\Models\Color; use App\Models\AttributeTranslation; use App\Models\AttributeValue; use CoreComponentRepository; use Str; class AttributeController extends Controller { public function __construct() { // Staff Permission Check $this->middleware(['permission:view_product_attributes'])->only('index'); $this->middleware(['permission:edit_product_attribute'])->only('edit'); $this->middleware(['permission:delete_product_attribute'])->only('destroy'); $this->middleware(['permission:view_product_attribute_values'])->only('show'); $this->middleware(['permission:edit_product_attribute_value'])->only('edit_attribute_value'); $this->middleware(['permission:delete_product_attribute_value'])->only('destroy_attribute_value'); $this->middleware(['permission:view_colors'])->only('colors'); $this->middleware(['permission:edit_color'])->only('edit_color'); $this->middleware(['permission:delete_color'])->only('destroy_color'); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { CoreComponentRepository::instantiateShopRepository(); CoreComponentRepository::initializeCache(); $attributes = Attribute::with('attribute_values')->orderBy('created_at', 'desc')->paginate(15); return view('backend.product.attribute.index', compact('attributes')); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $attribute = new Attribute; $attribute->name = $request->name; $attribute->save(); $attribute_translation = AttributeTranslation::firstOrNew(['lang' => env('DEFAULT_LANGUAGE'), 'attribute_id' => $attribute->id]); $attribute_translation->name = $request->name; $attribute_translation->save(); flash(translate('Attribute has been inserted successfully'))->success(); return redirect()->route('attributes.index'); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { $data['attribute'] = Attribute::findOrFail($id); $data['all_attribute_values'] = AttributeValue::with('attribute')->where('attribute_id', $id)->get(); // echo '<pre>';print_r($data['all_attribute_values']);die; return view("backend.product.attribute.attribute_value.index", $data); } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit(Request $request, $id) { $lang = $request->lang; $attribute = Attribute::findOrFail($id); return view('backend.product.attribute.edit', compact('attribute','lang')); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $attribute = Attribute::findOrFail($id); if($request->lang == env("DEFAULT_LANGUAGE")){ $attribute->name = $request->name; } $attribute->save(); $attribute_translation = AttributeTranslation::firstOrNew(['lang' => $request->lang, 'attribute_id' => $attribute->id]); $attribute_translation->name = $request->name; $attribute_translation->save(); flash(translate('Attribute has been updated successfully'))->success(); return back(); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $attribute = Attribute::findOrFail($id); foreach ($attribute->attribute_translations as $key => $attribute_translation) { $attribute_translation->delete(); } Attribute::destroy($id); flash(translate('Attribute has been deleted successfully'))->success(); return redirect()->route('attributes.index'); } public function store_attribute_value(Request $request) { $attribute_value = new AttributeValue; $attribute_value->attribute_id = $request->attribute_id; $attribute_value->value = ucfirst($request->value); $attribute_value->save(); flash(translate('Attribute value has been inserted successfully'))->success(); return redirect()->route('attributes.show', $request->attribute_id); } public function edit_attribute_value(Request $request, $id) { $attribute_value = AttributeValue::findOrFail($id); return view("backend.product.attribute.attribute_value.edit", compact('attribute_value')); } public function update_attribute_value(Request $request, $id) { $attribute_value = AttributeValue::findOrFail($id); $attribute_value->attribute_id = $request->attribute_id; $attribute_value->value = ucfirst($request->value); $attribute_value->save(); flash(translate('Attribute value has been updated successfully'))->success(); return back(); } public function destroy_attribute_value($id) { $attribute_values = AttributeValue::findOrFail($id); AttributeValue::destroy($id); flash(translate('Attribute value has been deleted successfully'))->success(); return redirect()->route('attributes.show', $attribute_values->attribute_id); } public function colors(Request $request) { $sort_search = null; $colors = Color::orderBy('created_at', 'desc'); if ($request->search != null){ $colors = $colors->where('name', 'like', '%'.$request->search.'%'); $sort_search = $request->search; } $colors = $colors->paginate(10); return view('backend.product.color.index', compact('colors', 'sort_search')); } public function store_color(Request $request) { $request->validate([ 'name' => 'required', 'code' => 'required|unique:colors|max:255', ]); $color = new Color; $color->name = Str::replace(' ', '', $request->name); $color->code = $request->code; $color->save(); flash(translate('Color has been inserted successfully'))->success(); return redirect()->route('colors'); } public function edit_color(Request $request, $id) { $color = Color::findOrFail($id); return view('backend.product.color.edit', compact('color')); } /** * Update the color. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update_color(Request $request, $id) { $color = Color::findOrFail($id); $request->validate([ 'code' => 'required|unique:colors,code,'.$color->id, ]); $color->name = Str::replace(' ', '', $request->name); $color->code = $request->code; $color->save(); flash(translate('Color has been updated successfully'))->success(); return back(); } public function destroy_color($id) { Color::destroy($id); flash(translate('Color has been deleted successfully'))->success(); return redirect()->route('colors'); } }