²é¿´/±à¼ ´úÂë
ÄÚÈÝ
<?php namespace App\Http\Controllers; use App\Biker; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; use Intervention\Image\Facades\Image; class BikerController extends Controller { public $ref_no, $biker_images_path; public function __construct() { $this->biker_images_path = public_path('/biker_photos'); $this->ref_no = rand(1000, 99999999); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $bikers = Biker::orderBy('id', 'DESC')->get(); return view('bikers.index')->with([ 'bikers' => $bikers ]); } /** * 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) { $rules = [ "name" => 'required', "phone_number" => 'required|min:10|unique:bikers', "email" => 'required|email|unique:bikers', "gender" => 'required', "location" => 'required', "dob" => 'required', ]; $messages = [ 'name.required' => 'Title is required!', 'email.required' => 'Email field is required!', 'phone_number.unique' => 'Phone number has already been registered', 'phone_number.min' => 'Phone number should be at least 10 digits', 'email.email' => 'Please provide a valid email address!', 'location.required' => 'Please add location!', 'dob.required' => 'Please provide date of birth!', ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return back() ->withErrors($validator) ->withInput(); } $biker = new Biker(); if ($request->hasFile('avatar')) { $biker->avatar = $this->uploadImage($request->file('avatar'), 'single'); } $biker->name = $request->name; $biker->email = $request->email; $biker->dob = $request->dob; $biker->gender = $request->gender; $biker->phone_number = $request->phone_number; $biker->location = $request->location; $biker->ref_id = $this->ref_no; if ($biker->save()) { return back()->with([ 'success' => 'Biker details was added successfully' ]); } return back()->with([ 'error' => 'Something went wrong' ]); } public function uploadImage($image, $type) { // if (!is_dir($this->biker_images_path)) { // mkdir($this->biker_images_path, 0777); // } $oname = basename($image->getClientOriginalName()); $new_name = time() . '_' . $oname; $img = Image::make($image) //thumbs ->fit(300, 300, function ($constraints) { // $constraints->aspectRatio(); $constraints->upsize(); }); $img2 = Image::make($image); $img2->save('biker_photos/' . $new_name); $img->save('biker_photos/thumbs/' . $new_name); return $new_name; } /** * Display the specified resource. * * @param \App\Biker $biker * @return \Illuminate\Http\Response */ public function show(Biker $biker) { // } /** * Show the form for editing the specified resource. * * @param \App\Biker $biker * @return \Illuminate\Http\Response */ public function edit(Biker $biker) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param \App\Biker $biker * @return \Illuminate\Http\Response */ public function update(Request $request, Biker $biker) { $biker = $biker->findOrFail($request->id); $rules = [ "name" => 'required', "phone_number" => 'required|min:10', "email" => 'required|email', "gender" => 'required', "location" => 'required', "dob" => 'required', ]; $messages = [ 'name.required' => 'Title is required!', 'email.required' => 'Email field is required!', 'phone_number.min' => 'Phone number should be at least 10 digits', 'email.email' => 'Please provide a valid email address!', 'location.required' => 'Please add location!', 'dob.required' => 'Please provide date of birth!', ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return back() ->withErrors($validator) ->withInput(); } if ($request->hasFile('avatar')) { //delete current photo if ($biker->avatar != 'avatar.png') { unlink('biker_photos/' . $biker->avatar); unlink('biker_photos/thumbs/' . $biker->avatar); } $biker->avatar = $this->uploadImage($request->file('avatar'), 'single'); } $biker->name = $request->name; $biker->email = $request->email; $biker->dob = $request->dob; $biker->gender = $request->gender; $biker->phone_number = $request->phone_number; $biker->location = $request->location; if ($biker->save()) { return back()->with([ 'success' => 'Biker details was updated successfully' ]); } return back()->with([ 'error' => 'Something went wrong' ]); } /** * Remove the specified resource from storage. * * @param \App\Biker $biker * @return \Illuminate\Http\Response */ public function destroy(Request $request, Biker $biker) { $biker = $biker->findOrFail($request->id); if ($biker->avatar != 'avatar.png') { unlink('biker_photos/' . $biker->avatar); unlink('biker_photos/thumbs/' . $biker->avatar); } if ($biker->delete()) { return back()->with([ 'success' => 'Biker details was deleted successfully' ]); } return back()->with([ 'error' => 'Something went wrong' ]); } }