This is my ResourceController
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Resource;
use App\Models\Category;
use App\Models\User;
use Illuminate\Support\Str;
use Carbon\Carbon;
use Illuminate\Support\Facades\Storage;
use Intervention\Image\Facades\Image;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
class ResourceController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$resources = Resource::latest()->get();
return view('admin.resource.index',compact('resources'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$categories = Category::all();
return view('admin.resource.create',compact('categories'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$this->validate($request,[
'title' => 'required|unique:resources,title',
'categories' => 'required',
'file' => 'required|mimes:pdf|max:10000',
'image' => 'required',
]);
$slug = Str::slug($request->title);
if($request->hasFile('image')){
$image_tmp = $request->file('image');
if ($image_tmp->isValid()) {
// Upload Images after Resize
$extension = $image_tmp->getClientOriginalExtension();
$imageName = rand(111,99999).'.'.$extension;
$large_image_path = 'public/assets/frontend/img/resource'.'/'.$imageName;
Image::make($image_tmp)->save($large_image_path);
}
}
if($request->file('file')){
$file = $request->file('file');
$fileName = time().'.'.$request->file->extension();
$request->file->move('public/assets/frontend/img/pdf/', $fileName);
}
$resource = New Resource();
$resource->title = $request->title;
$resource->slug = $slug;
$resource->image = $imageName;
$resource->file = $fileName;
$resource->save();
$resource->categories()->attach($request->categories);
return redirect()->route('admin.resource.index')->with('message', 'Resource Added Successfully');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$resource = Resource::find($id);
$categories = Category::all();
return view('admin.resource.show',compact('resource','categories'));
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$resource = Resource::find($id);
$categories = Category::all();
return view('admin.resource.edit',compact('resource','categories'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$this->validate($request,[
'title' => '',
'categories' => '',
'image' => 'image',
'file' => 'mimes:pdf|max:10000',
]);
$resource = Resource::find($id);
$slug = Str::slug($request->title);
if($request->hasFile('image')){
$image_tmp = $request->file('image');
if ($image_tmp->isValid()) {
// Upload Images after Resize
$extension = $image_tmp->getClientOriginalExtension();
$imageName = rand(111,99999).'.'.$extension;
$large_image_path = 'public/assets/frontend/img/resource'.'/'.$imageName;
Image::make($image_tmp)->save($large_image_path);
}
}else if(!empty($data['current_image'])){
$imageName = $data['current_image'];
}else{
$imageName = $resource->image;
}
if($request->file('file')){
$file = $request->file('file');
$fileName = time().'.'.$request->file->extension();
$request->file->move('public/assets/frontend/img/pdf/', $fileName);
}else{
$fileName = $resource->file;
}
$resource->title = $request->title;
$resource->slug = $slug;
$resource->image = $imageName;
$resource->file = $fileName;
$resource->save();
$resource->categories()->sync($request->categories);
return redirect()->route('admin.resource.index')->with('message', 'Resource Updated Successfully');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
Resource::where('id',$id)->delete();
return redirect()->back()->with('message', 'Resource Deleted Successfully');
}
}