#php #laravel
#php #ларавель
Вопрос:
У меня есть панель навигации, которая прозрачна на моей главной странице, но я хочу удалить прозрачный класс и присвоить ему новый класс с цветом фона в другом шаблоне блейда. Я бы использовал разделы, но мне это кажется немного излишним. Также я хотел бы запретить удаление макета и добавить его в шаблон самостоятельно.
Это моя навигационная панель в моем app.blade.php
<nav id="nav" class="navbar fixed-top navbar-toggleable-md navbar-expand-lg navbar-transparent">
Но в конкретных шаблонах блейда я хочу удалить этот класс navbar-transparent и присвоить ему «navbar-dark bg-dark».
<nav id="nav" class="navbar fixed-top navbar-toggleable-md navbar-expand-lg navbar-dark bg-dark">
Есть ли что-нибудь, что я могу сделать, кроме использования разделов или удаления всего шаблона макета и добавления его в мои пользовательские шаблоны блейда?
Ответ №1:
В методе контроллера вы можете передать класс как
$tempClass = "navbar-dark bg-dark";
return view("folder.view", compact("...your other arrays", "tempClass"));
В app.blade.php вы можете написать,
@php
$tempClass = (!empty($tempClass) ? $tempClass : 'navbar-transparent')
@endphp
И заменить
<nav id="nav" class="navbar fixed-top navbar-toggleable-md navbar-expand-lg navbar-transparent">
с
<nav id="nav" class="navbar fixed-top navbar-toggleable-md navbar-expand-lg {{ $tempClass }}">
Так что вы получите динамическое имя класса в app.blade.php
Комментарии:
1. Спасибо за ответ. Я нашел лучшее решение для своих целей. Я создал новый файл макета и вместо того, чтобы иметь макет главной страницы, просто использую точно такой же макет, но с разными классами, и расширяю его в своих файлах блейда. Спасибо за вашу помощь, хотя!