2014-02-07 4 views
3

Я пытаюсь создать меню навигации, У меня есть 3 товары, как это:получить имя маршрута в View

  • Dashboard
  • Страницы
    • Список
    • Добавить
  • Статьи
    • Список
    • Добавить

Теперь я хочу смелого Pages, когда пользователь находится в этом разделе,

и если в Add странице я хочу полужирный как Pages и Add

мой routes.php:

Route::group(array('prefix' => 'admin', 'before' => 'auth.admin'), function() 
{ 
    Route::any('/', 'App\Controllers\Admin\[email protected]'); 
    Route::resource('articles', 'App\Controllers\Admin\ArticlesController'); 
    Route::resource('pages', 'App\Controllers\Admin\PagesController'); 
}); 

Я нашел thid метод:

$name = \Route::currentRouteName(); 
var_dump($name); 

Но этот метод возвращения string 'admin.pages.index' (length=17)

Должен ли я использовать splite получить контроллер или Laravel есть метод для этого?

ответ

4

Вы можете использовать это (чтобы получить текущее действие, т.е. [email protected])

Route::currentRouteAction(); 

Это вернет action, например [email protected], и вы можете использовать что-то вроде этого, на ваш взгляд

<!-- echo the controller name as 'HomeController' --> 
{{ dd(substr(Route::currentRouteAction(), 0, (strpos(Route::currentRouteAction(), '@') -1))) }} 

<!-- echo the method name as 'index' --> 
{{ dd(substr(Route::currentRouteAction(), (strpos(Route::currentRouteAction(), '@') + 1))) }} 

Метод Route::currentRouteName() возвращает имя вашего маршрута, который используется в качестве 'as' => 'routename' в вашем объявлении маршрута.

+1

Это именно то, что мне нужно, спасибо! –

5

Request::segments() возвращает массив с текущим URL, например:

yoursite/admin/users/create 

даст:

array(2) { 
    [0] "admin" 
    [1] "users" 
    [2] "create" 
} 
+0

Спасибо, как я могу использовать это в 'view'? Я имею в виду, что в шаблонах 'Blade' – MajAfy

+0

Запрос доступен в представлениях, но вы также можете передать его с помощью метода' with', например: View :: make ('ваш-view') -> с (array ('activeController' => Запрос :: сегмент (2))); или 'activeMenus' => Request :: segment() – diegofelix

4

В Блэйд:

<p style="font-weight:{{ (Route::current()->getName() == 'admin.pages.index' && Request::segment(0) == 'add') ? 'bold' : 'normal' }};">Pages</p> 
Смежные вопросы