LaravelのGate

NO IMAGE

参考:https://www.ritolab.com/entry/56

AuthServiceProvider

public function boot()
{
  $this->registerPolicies();

  // 開発者のみ許可
  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);
  });
}

 

Route/web.php

Route::group(['middleware' => ['auth', 'can:admin-higher']],

blade

 @can('system-only') {{-- システム管理者権限のみに表示される --}}
      <li><a href="">機能1</a></li>
    @elsecan('admin-higher') {{-- 管理者権限以上に表示される --}}