2016-04-25 15 views
5

Czy istnieje sposób zdefiniowania nazwy grupy tras w laravel?Jak zdefiniować nazwę grupy tras w laravel

Co staram się osiągnąć przez to, aby wiedzieć, że obecny wniosek należy do której grupy, więc mogę zrobić aktywny głównym menu i podmenu przez obecnego działania Trasa:

Kod:

Route::group(['prefix'=>'accounts','as'=>'account.'], function(){ 
    Route::get('/', '[email protected]')->name('index'); 
    Route::get('connect', '[email protected]')->name('connect'); 
}); 

Route::group(['prefix'=>'quotes','as'=>'quote.'], function(){ 
    Route::get('/', '[email protected]')->name('index'); 
    Route::get('connect', '[email protected]')->name('create'); 
}); 

nawigacja HTML kod

<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> 

teraz to, co chcę jest wywołanie funkcji lub coś, co da mi nazwę grupy aktualnej trasie jest.

Przykłady:

  1. Jeśli jestem na indeks lub utworzyć stronę cytatów getCurrentRouteGroup() powinien powrócić quote
  2. Jeśli jestem na indeksie lub połączyć strona rachunków getCurrentRouteGroup() powinien powrócić account

Odpowiedz

3

Powinno to zadziałać:

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

Look here w celu uzyskania objaśnienia oraz w official documentation (w ramach Grupy tras & Nazwane trasy).

Aktualizacja

{{ $routeName = \Request::route()->getName() }} 

@if(strpos($routeName, 'account.') === 0) 
    // do something 
@endif 

alternatywna od Rohit Khatri

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

chcę uzyskać aktualną nazwę grupy trasę na widoku. –

+0

Po prostu użyj tego samego '{{route ('account.index')}}' –

+1

Daje mi adres URL trasy, nie chcę adresu URL. Chcę wywołać funkcję 'getCurrentRouteGroup()', a ona da mi nazwę grupy tras. Podobnie jak w przypadku połączenia lub indeksu stron kont, 'getCurrentRouteGroup()' zwróci 'konto'. –

0

Spróbuj

Route::group(['prefix'=>'accounts','as'=>'account.'], function(){ 

Route::get('connect', [ 
'as' => 'connect', 'uses' => '[email protected]' 
]); 

}); 
+0

Co mam działa idealnie, ale chcę wiedzieć na temat tego, do jakiej grupy należy ten wniosek. –

Powiązane problemy