Добавлять класс в layout.blade.php можно только на главной странице - PullRequest
0 голосов
/ 28 декабря 2018

Я новый пользователь в Laravel и пришел с корабля CMS.На моей домашней странице я хочу, чтобы навигация была прозрачной и имела черный фон на всех других страницах.

Для этого я добавил в заголовок домашней страницы класс header-home.Я специально добавляю этот класс на домашнюю страницу внутри файла макета. Я написал это:

<header {% if craft.request.lastSegment == "" %}class="header-home"   {% endif %}>

Я знаю, что могу просто создать другой файл layout.blade.php для домашней страницы, но будут и другие случаи, когдаЯ хочу добавить класс или элемент в зависимости от того, на какой странице или URL-адресе находится пользователь.

Заранее спасибо, Джейми

Ответы [ 2 ]

0 голосов
/ 29 декабря 2018

Я нашел лучший способ для меня - использовать оператор if в блейде и проверить маршрут, вот как я это сделал:

@if (\Request::is('/'))  
    <img class="nav-logo" src="img/logo-light.svg">
@else
    <img class="nav-logo" src="img/logo-dark.svg">
@endif
0 голосов
/ 28 декабря 2018

Вы можете отправить класс из контроллера:

public function myAction
{
    ...
    return view('home', ['layoutClass'=>'dark']);
}

<header class="{{ isset($layoutClass) ? $layoutClass:'') }} />

или вы можете сопоставить маршрут в представлении:

<header class="{{ (\Request::route()->getName() == 'myRoute') ? 'dark':'') }} />
...