Как определить имя группы маршрутов в laravel

Есть ли способ определить имя группы маршрутов в laravel?

То, что я пытаюсь сделать, состоит в том, чтобы знать, что текущий запрос принадлежит к какой группе, поэтому я могу активировать главное меню и подменю по текущему действию маршрута:

Код:

Route::group(['prefix'=>'accounts','as'=>'account.'], function(){ Route::get('/', 'AccountController@index')->name('index'); Route::get('connect', 'AccountController@connect')->name('connect'); }); Route::group(['prefix'=>'quotes','as'=>'quote.'], function(){ Route::get('/', 'QuoteController@index')->name('index'); Route::get('connect', 'QuoteController@create')->name('create'); }); 

Код HTML для навигации

 <ul> <li> // Add class 'active' when any route is open from account route group <a href="{{route('account.index')}}">Accounts</a> <ul> <li> // Add class 'active' when connect sub menu is clicked <a href="{{route('account.connect')}}">Connect Account</a> </li> </ul> </li> <li> // Add class 'active' when any route is open from quote route group <a href="{{route('quote.index')}}">Quotes</a> <ul> <li> // Add class 'active' when create sub menu is clicked <a href="{{route('quote.create')}}">Create Quote</a> </li> </ul> </li> </ul> 

Теперь я хочу вызвать функцию или что-то, что даст мне имя группы текущего маршрута.

Примеры:

  1. Если я нахожусь в индексе или создаю страницу цитат, то getCurrentRouteGroup() должен возвращать quote
  2. Если я на индексе или подключаю страницу учетных записей, то getCurrentRouteGroup() должен возвращать account

Solutions Collecting From Web of "Как определить имя группы маршрутов в laravel"

Это должно работать:

 Route::group(['prefix'=>'accounts','as'=>'account.'], function(){ Route::get('/', ['as' => 'index', 'uses' => 'AccountController@index']); Route::get('connect', ['as' => 'connect', 'uses' = > 'AccountController@connect']); }); 

Посмотрите здесь пояснения и официальную документацию (в разделе « Группы маршрутов» и «Именованные маршруты» ).

Обновить

 {{ $routeName = \Request::route()->getName() }} @if(strpos($routeName, 'account.') === 0) // do something @endif 

Альтернатива Рохит Хатри

 function getCurrentRouteGroup() { $routeName = Illuminate\Support\Facades\Route::current()->getName(); return explode('.',$routeName)[0]; } 

Попробуй это

 Route::group(['prefix'=>'accounts','as'=>'account.'], function(){ Route::get('connect', [ 'as' => 'connect', 'uses' => 'AccountController@connect' ]); });