Есть ли способ определить имя группы маршрутов в 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>
Теперь я хочу вызвать функцию или что-то, что даст мне имя группы текущего маршрута.
Примеры:
getCurrentRouteGroup()
должен возвращать quote
getCurrentRouteGroup()
должен возвращать account
Это должно работать:
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' ]); });