Как добавлять / удалять классы в определенных шаблонах блейда

#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. Спасибо за ответ. Я нашел лучшее решение для своих целей. Я создал новый файл макета и вместо того, чтобы иметь макет главной страницы, просто использую точно такой же макет, но с разными классами, и расширяю его в своих файлах блейда. Спасибо за вашу помощь, хотя!