【Laravel】今いるURL(ルーティング)によってクラス名などを変える

えび

今いる画面に応じて、メニューをactiveとかにしたいとき

requestで用意されているメソッドを使用する

Laravelが用意してくれているメソッドで簡単に判断が可能

  • is メソッド : URLがマッチしている場合trueを返す。*を用いたパターン走査も可能
  • routeIs メソッド:ルート名がマッチしている場合trueを返す。*を用いたパターン走査も可能

公式はこちら

URLで判断する場合

  • viewで使用してみる
 <a href="{{ route('users.index') }}"
  class="{{ request()->is('users', 'users/*') ? 'is-active' : '' }}">
  ユーザー一覧
</a>
  • Controllerで使用してみる
if ($request->is('users', 'users/*')) {
  // 
}

ルーティング名で判断する場合

  • viewで使用してみる
 <a href="{{ route('users.index') }}"
  class="{{ request()->routeIs('users.*') ? 'is-active' : '' }}">
  ユーザー一覧
</a>
  • Controllerで使用してみる
if ($request->routeIs('users.*')) {
    //
}