Laravel Gateのメモ
- 公開日
- 更新日
- カテゴリ:Laravel
- タグ:PHP,Laravel,Gate

// 開発者のみ許可
Gate::define('system-only', function ($user) {
return ($user->role == 1);
});
// 管理者以上に許可
Gate::define('admin-higher', function ($user) {
return ($user->role > 0 && $user->role <= 5);
});
// 一般ユーザ以上に許可
Gate::define('user-higher', function ($user) {
return ($user->role > 0 && $user->role <= 10);
});
権限による HTML の出し分け
Gate 機能によってロールを設定していると、Blade テンプレート、いわゆるビューの部分でもそれによって出し分けが出来る。
例えばナビゲーションなど、以下のように@can ディレクティブを用いて記述する事で、該当権限のユーザにのみ表示する事が出来る。
<nav>
<ul>
@can('system-only') {{-- システム管理者権限のみに表示される --}}
<li><a href="">機能1</a></li>
@elsecan('admin-higher') {{-- 管理者権限以上に表示される --}}
<li><a href="">機能2</a></li>
<li><a href="">機能3</a></li>
@elsecan('user-higher') {{-- 一般権限以上に表示される --}}
<li><a href="">機能4</a></li>
<li><a href="">機能4</a></li>
<li><a href="">機能4</a></li>
<li><a href="">機能5</a></li>
@endcan
</ul>
</nav>