Ich benutze Laravel 5.2. Also lerne ich, wie man mit Rollen und Berechtigungen umgehen kann Authorization. Alles läuft gut. Ich habe sogar meine eigene Policy PostPolicy gemacht.Laravel Klinge @ can Politik - String
Und jetzt zu dem Problem. Ich lade die $ Post-Daten in die Ansicht im PostsController, die dann in Blade geladen wird.
Posts:
public function show($id)
{
$post = Post::find($id);
return view('posts.show', compact('post'));
}
Beiträge/show.blade.php:
@section('content')
<!-- begin -->
@can('hasRole', Auth::user())
<h1>Displaying Admin content</h1>
@endcan
@can('hasRole', Auth::user())
<h1>Displaying moderator content</h1>
@endcan
@can('hasRole', Auth::user())
<h1>Displaying guest content</h1>
@endcan
Politik:
public function hasRole($user)
{
// just for test
return true;
}
Nun wird der gesamte Inhalt zurückgegeben.
Wenn ich ändern, um die @can('hasRole', Auth::user())
von Auth :: Benutzer() in einen String, das heißt
@can('hasRole', 'guest')
<h1>Displaying guest content</h1>
@endcan
In diesem Fall gibt es nichts zurück. Da ich neu bei Laravel bin, weiß ich wirklich nicht, dass es nicht funktioniert.
Die docs Sie einen Link in den Zustand „Für die Bequemlichkeit, Laravel bietet die '@ can'-Blade-Direktive, um schnell zu überprüfen, ob ** der aktuell authentifizierte Benutzer ** eine bestimmte Fähigkeit besitzt." – ceejayoz