Viewing: EditorNoteController.php
<?php namespace App\Http\Controllers\Admin\EditorNote; use Session; use Illuminate\Http\File; use Illuminate\Support\Str; use Illuminate\Http\Request; use Illuminate\Validation\Rule; use App\Http\Controllers\Controller; use App\Models\EditorNote; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Redirect; use Illuminate\Support\Facades\Validator; use Yajra\DataTables\DataTables; use Illuminate\Support\Facades\URL; class EditorNoteController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index(Request $request) { // $getTestimonials = Testimonial::orderby('id','desc')->get(); $getTestimonials = EditorNote::get(); $awsURL = Storage::url(''); if ($request->ajax()) { $data = $getTestimonials; return Datatables::of($data) ->addIndexColumn() ->addColumn('title', function (EditorNote $data) { return $data->title; }) ->addColumn('description', function (EditorNote $data) { return "<span>" . $data->description . "</span>"; }) ->addColumn('status', function (EditorNote $data) { return ($data->status == 1) ? 'Active' : 'Inactive'; }) ->addColumn('action', function (EditorNote $data) { $btns = '<a href="' . URL::route('editEditorNote', $data->id) . '"><i class="fa fa-pencil-square-o mx-2" aria-hidden="true" style="font-size:18px;" data-feather="edit"></i></a>' . '|' . '<a id="" class="mx-2" onclick="validateBtn()" href="' . route('statusTestimonial', $data->id) . '">Change Status</a>'; return $btns; }) ->rawColumns(['action', 'status', 'description']) ->make(true); } return view('Admin.editor_note.index', ['title' => "Editor Notes", 'getTestimonials' => $getTestimonials]); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { return view( 'Admin.editor_note.create', [ 'title' => "Editor Note", ] ); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { //dd($request->all()); $rules = [ 'title' => 'required|string|max:191', 'description' => 'nullable', 'short_desc' => 'nullable', //'is_local' => 'required|numeric', 'description' => 'nullable', 'image_url' => 'required|mimes:jpeg,jpg,png,webp', 'slug' => 'required|max:250', ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return Redirect::back()->withErrors($validator)->withInput($request->all()); } else { $photoRootDirectory = "editorNotes"; $mediaLink = ""; if ($request->hasFile('image_url')) { $fileName = $request->file('image_url')->getClientOriginalName(); if (!Storage::exists($photoRootDirectory)) { Storage::makeDirectory($photoRootDirectory,0775, true, true); chmod(storage_path('app/public/' . $photoRootDirectory), 0775); } Storage::putFileAs($photoRootDirectory, new File($request->file('image_url')), $fileName); $mediaLink = $photoRootDirectory . '/' . $fileName; } $status = $request->get('status'); if ($status == null) { $status = '0'; } $data = [ 'title' => $request->input('title'), 'slug' => Str::slug($request->input('slug'), '_') ?? Str::slug($request->input('name'), '_'), 'short_description' => $request->input('short_desc'), 'description' => $request->input('description'), 'description' => $request->input('description'), 'image' => $mediaLink, // 'is_local' => $request->input('is_local'), 'status'=> '1', ]; $testimonial = EditorNote::create($data); return redirect()->route('testimonial')->with('success', 'Record Added Successfully.'); } } public function update(Request $request) { $testimonial = EditorNote::findOrFail($request->testimonial_id); // dd($testimonial); $slug = Str::slug($request->input('slug'), '_') ?? Str::slug($request->input('name'), '_'); $rules = [ 'title' => 'required|string|max:191', 'short_desc' => 'required|string', //'description' => 'required', 'description' => 'nullable', 'image_url' => 'nullable|mimes:jpeg,jpg,png,webp', 'slug' => ['required', 'max:250', Rule::unique('testimonials', 'slug')->ignore($request->testimonial_id)], ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return Redirect::back()->withErrors($validator)->withInput($request->all()); } $status = $request->get('status'); if ($status == null) { $status = '0'; } $data = [ 'title' => $request->input('title'), 'short_description' => $request->input('short_desc'), 'description' => $request->input('description'), //'description' => $request->input('description'), //'old_slug' => $testimonial->slug == $slug ? $testimonial->old_slug : $testimonial->slug, 'slug' => $slug, 'status' => $status, ]; $testimonial->update($data); $testimonialDirectory = 'editorNotes'; if ($request->hasFile('image_url')) { if (!Storage::exists($testimonialDirectory)) { Storage::makeDirectory($testimonialDirectory,0775, true, true); chmod(storage_path('app/public/' . $testimonialDirectory), 0775); } if ($testimonial->image_url != null) { Storage::delete($testimonial->image_url); } $imageUrl = Storage::putFile($testimonialDirectory, new File($request->file('image_url'))); $testimonial->update(['image' => $imageUrl]); } return redirect()->route('admin.editor.note')->with('success', ''); } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $testimonial = EditorNote::where('id', $id)->first(); return view( 'Admin.editor_note.edit', [ 'title' => "Editor Notes", 'testimonial' => $testimonial, ] ); } public function destroy(Request $request) { // dd($request->all()); $testimonial = EditorNote::find($request->testimonial_id); if ($testimonial == null) { return Redirect::back()->with('error', 'No Record Found.'); } if ($testimonial->image_url != null) { Storage::delete($testimonial->image_url); } $testimonial->delete(); return redirect()->route('testimonial')->with('success', 'Record Deleted Successfully.'); } public function status($id) { // dd($id); $testimonial = EditorNote::where('id', $id)->get(); if ($testimonial[0]->status == 1) { $status = '0'; } else if ($testimonial[0]->status == 0) { $status = '1'; } $data = [ 'status' => $status ]; $del = EditorNote::where('id', $id)->update($data); Session::flash('updated'); return Redirect::back(); } }
Return