Я организую свой веб-сайт по разделам, которые должны быть видны с первого взгляда на панели навигации (с active
класс по соответствующей ссылке). В данный момент я проверяю каждую ссылку в панели навигации, соответствует ли текущий URL-адрес ссылке, но в каждом случае она работает только для 1 URL. Должно быть так:
article
—————-> article
разделarticle/create
——> article
разделarticle/edit
———> article
разделforum
——————-> forum
разделforum/post/12345
-> forum
разделПоскольку все мои «секции» используют контроллеры, я подумал, что, возможно, я смогу реализовать способ (возможно, с помощью конструктора) для передачи переменной (section
) ко всем представлениям, возвращаемым контроллером, чтобы мой макет мог получить к нему доступ и установить active
класс по правильной ссылке.
Но я не хочу делать return View::make('myView')->with('section', $this->section);
каждый раз
Кто-нибудь знает, как этого добиться? Благодарю.
Вы должны использовать Request::segment(1)
сравнить это с разделом.
Если ваш URL article/create
и вы используете Request::segment(1)
это вернет тебя article
и не article/create
И на самом деле, вам не нужно ничего передавать Blade в этом случае, потому что это должно быть видно:
@if (Request::segment(1) == 'article')
class="active"@endif
Вы также можете разделить его между всеми представлениями, таким образом, будет легче изменить сегмент позже, если это изменится и избавит вас от необходимости редактировать Request :: сегмента (1) во всех ваших представлениях (если у вас есть больше)
Использование:
View::share('section', Request::segment(1));
Затем в каждом представлении получить значение с помощью: $section