#はじめに
Gateでアクセス制限を定義したのち、blade内で権限によってコンテンツの表示非表示を決めていきます。
###Gateでの定義
AuthServiceProvider.php
において
public function boot()
{
$this->registerPolicies();
Gate::define('teacher',function ($user){
return($user->role == 1);
});
Gate::define('student',function ($user){
return($user->role == 2);
});
}
このように定義しておきます。
###bladeでの認可
-
@can
ディレクティブ
@can('teacher')
<p>you are teacher!</p>
@elsecan('student')
<p>you are not teacher!!</p>
@endcan
-
@canany
ディレクティブ
認可対象が複数の場合は @canany
ディレクティブを使うと纏まります。
@canany(['teacher','student'])
<p>you are teacher or student!</p>
@endcanany
これらのディレクティブは他にもGateで定義した際の引数を持たせたりできます。
以下をご参考に。
認可 6.x Laravel
以上!