2014-01-19 6 views
1

Как включить файл, на основе которого маршрут «категория» используется с кликом с Laravel? Я в основном пытаюсь сделать это в суб нав части моего шаблона вида:включают в себя на основе маршрута Laravel

приложение/просмотров/макеты/default.blade.php

@if (Route::resource() == 'tasks') 
    @include('navs.task') 
@elseif (Route::resource() == 'projs') 
    @include('navs.proj') 
@elseif (Route::resource() == 'miscs') 
    @include('navs.misc') 
@else 
    @include('navs.info') 
@endif 

но бросает ошибку «Undefined класс константы ' resource '"

ответ

0

Вы после маршрута :: currentRouteName().

@if (Route::currentRouteName() == 'tasks') 
    @include('navs.task') 
@elseif (Route::currentRouteName() == 'proj') 
    @include('navs.proj') 
@elseif (Route::currentRouteName() == 'misc') 
    @include('navs.misc') 
@else 
    @include('navs.info') 
@endif 
0

Michael P: ваш ответ привел меня к правильному ответу. Маршрут :: currentRouteName() возвращает «task.index» или «proj.create», который является слишком узким. Работает Route :: current() -> getUri().

@if (Route::current()->getUri() == 'tasks') 
    @include('nav.task') 
@elseif (Route::current()->getUri() == 'projs') 
    @include('nav.proj') 
@elseif (Route::current()->getUri() == 'miscs') 
    @include('nav.misc') 
@else 
    @include('nav.info') 
@endif 
0

Очень поздно, но я думаю, что использование Request :: is является более простым способом.

@if (Route::is('tasks')) 
    @include('navs.task') 
@elseif (Route::is('projs')) 
    @include('nav.proj') 
@elseif (Route::is('miscs')) 
    @include('nav.misc') 
@else 
    @include('nav.info') 
@endif 

Также это много, если вместо этого используется корпус коммутатора.

Смежные вопросы