Laravel5.2を使用しています。だから私は役割とパーミッションAuthorizationを扱う方法について学んでいます。すべてが正常に動作します。独自のポリシー PostPolicy も作成しました。
そして今、問題に。$post データを PostsController のビューにロードし、それをブレードにロードします。
PostsController :
public function show($id)
{
$post = Post::find($id);
return view('posts.show', compact('post'));
}
投稿/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
ポリシー:
public function hasRole($user)
{
// just for test
return true;
}
これですべてのコンテンツが返されます。
Auth::user() を文字列に変更すると @can('hasRole', Auth::user())
、iE
@can('hasRole', 'guest')
<h1>Displaying guest content</h1>
@endcan
この場合、何も返されません。私はLaravelが初めてなので、うまくいかないことを本当に知りません。