Laravel accessories

Delete operation

View:
<form action="{{ route('delete', $user->id) }}" method="POST"> <input type="hidden" name="_method" value="DELETE"> <input type="hidden" name="_token" value="{{ csrf_token() }}"> <input type="submit" name="delete" value="Delete"> </form>
Controller:
public function destroy(Request $request, $id) { $deleted = User::where('id', $id)->delete(); if($deleted) return redirect()->route('user.index'])->with('message', 'User deleted successfully'); return back()->withInput(); }

Update operation

View:
<form action="{{ route('update', $user->id) }}" method="POST"> <input type="hidden" name="_method" value="PUT"> <input type="hidden" name="_token" value="{{ csrf_token() }}"> <input type="text" name="fname" value="{{ $user->fname }}"> <input type="text" name="lname" value="{{ $user->lname }}"> <input type="submit" name="delete" value="Delete"> </form>
Controller:
public function update(Request $request, $id) { $data = User::where('id', $user->id)->update(['fname'=>$request->fname, 'lname'=>$request->lname]); if($data) return redirect()->route('user.show', $id])->with('message', 'User updated successfully'); return back()->withInput(); }

Displaying session message:

View:
@if(session()->has('message')) <div class="alert alert-success"> {{ session()->get('message') }} </div> @endif
@if (count($errors) > 0) <div class="alert alert-danger"> <strong>Whoops!</strong> There were some problems with your input. <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif Controller:
return redirect()->back()->with('message', 'IT WORKS!');
Named route generated links
If route is like: Route::delete('/test', 'TestController@destroy')->name('delete');
Now,
{{ route('delete', 1) }} //https://onbiponi.com/test?1 {{ route('delete', ['parameter' => 1]) }} //https://onbiponi.com/test?parameter=1 If route is like: Route::delete('/test/{id}', 'TestController@destroy')->name('delete'); {{ route('delete', 1) }} //https://onbiponi.com/test/1 {{ route('delete', ['parameter' => 1]) }} //https://onbiponi.com/test/1

Route Caching

To generate a route cache, just execute the route:cache Artisan command:
php artisan route:cache
You may use the route:clear command to clear the route cache:
php artisan route:clear
You should always clear the route and then cache. To work on shared hosting, you have to know: If you want to remove the routes cache on your server, remove this file:
bootstrap/cache/routes.php
And if you want to update it just run
php artisan route:cache
and upload the bootstrap/cache/routes.php to your server.

Laravel Flash

Controller:
$request->flash(); //flashes/saves data to session
 or,
$request->flashOnly(['username', 'email']); //flashes/saves except username and email
 or,
$request->flashExcept('password'); //flashes/saves except password
or,
return redirect('form')->withInput(); //Redirect with flash
To retrieve flashed input from the previous request, use the old method on the Request instance-
$request->old('username');
view:
{{ old('username') }}
Migration default current timestamp
$table->timestamp(’something_at')->default(DB::raw('CURRENT_TIMESTAMP'));

Delete operation

View:
<form action="{{ route('users.update', $user->id) }}" method="POST"> <input type="hidden" name="_method" value="PUT"> <input type="file" name="image"> <input type="hidden" name="_token" value="{{ csrf_token() }}"> <input type="submit" name="delete" value="Delete"> </form>
Controller:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; class UserController extends Controller { public function index() { return view('index'); } public function upload(Request $request) { /* validation for image */ /* $request->validate([ 'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048', ]); */ $file = $request->file('image'); //Display File Name echo 'File Name: '.$file->getClientOriginalName(); echo '<br>'; //Display File Extension echo 'File Extension: '.$file->getClientOriginalExtension(); echo '<br>'; //Display File Real Path echo 'File Real Path: '.$file->getRealPath(); echo '<br>'; //Display File Size echo 'File Size: '.$file->getSize(); echo '<br>'; //Display File Mime Type echo 'File Mime Type: '.$file->getMimeType(); //Move Uploaded File $destinationPath = 'uploads'; $file->move($destinationPath,$file->getClientOriginalName()); } }

Displaying Request errors

<div class="col-12">
@if($errors->any())
{!! implode('', $errors->all('<div class="alert alert-danger alert-dismissible text-center"><button type="button" class="close" data-dismiss="alert">&times;</button>:message</div>')) !!}
@endif
</div>

Middleware using & meaning

Route::middleware('auth:api')
Means: Authenticated through api routes (ie. needs token)
Route::middleware('guest:api')
Means: Guest through api routes (ie. no token)

Labels: ,

© copyright-2020 Rejaul