2017-02-26 3 views
1

Ich bin neu zu Laravel und weiß nicht über Laravel Restriktionsmechanismus, ich habe über Middleware gelesen, aber verwirrt, wie man es verwendet und warum es verwendet wird und wie das funktioniert , also bitte führe mich, wie ich es für die Beschränkung implementieren kann, dh für auth, sa user routes.Laravel Middleware für Admin oder Auth in Laravel 5.4.6

Antwort

2

Der beste Weg ist, direkt aus dem Laravel docs zu lernen: https://laravel.com/docs/5.4/middleware

oder Sie können ein kurze Laracasts Video nur zuschauen: https://laracasts.com/series/laravel-5-from-scratch/episodes/14

+0

möchten Sie mir sagen, wann sollten wir sie nutzen und welche Vorteile es – Savvy

+0

Auf den Punkt gebracht, Middleware verwendet wird, um alle Aktionen auszuführen, bevor die Anforderung des Controllers trifft, vor allem wenn es sich um eine Aktion handelt, die für mehrere Controller/Routen gilt (z. B. Authentifizierung, CSRF-Token usw.). Durchsuchen Sie die Dokumentation und das Video. Wenn Sie weitere Fragen haben, können Sie sie gerne posten. – Paras

5

Vergewissern Sie sich Ihre Rolle Spalte oder Attribut in der Datenbank Benutzer-Tabelle haben.

SCHRITT 1

eine Midlleware erstellen

php artisan make:middleware AnyNameYouWant 

es wird für Sie einen schönen vorformulierten erstellen.

STEP 2

public function handle($request, Closure $next) 
{ 
    if (\Auth::user()->role == 'admin') { 
     return $next($request); 
    } 

     return redirect('home'); 
} 

STEP 3

verwenden in Kernel

protected $routeMiddleware = [ 
'auth' => \Illuminate\Auth\Middleware\Authenticate::class, 
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, 
'can' => \Illuminate\Auth\Middleware\Authorize::class, 
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 
'admin' => \App\Http\Middleware\YourMiddleware::class, 

];

STEP 4

Ihre Routen schützen.

Route::get('admin/profile', function() { 
// 
})->middleware('admin'); 

Sie sind fertig

+0

vielen Dank, @Adnan – Savvy