1. Home
  2. PHP
  3. Laravel
  4. Laravel Gateのメモ

Laravel Gateのメモ

  • 公開日
  • 更新日
  • カテゴリ:Laravel
  • タグ:PHP,Laravel,Gate
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>

Author

rito

  • Backend Engineer
  • Tokyo, Japan
  • PHP 5 技術者認定上級試験 認定者
  • 統計検定 3 級