вопросы пишите мне в телеграмм +375298176892
можно скачать офлайн версию сайта: code.mu old.code.mu

Наследование шаблонов Blade

В предыдущих уроках представление какого-либо действия контроллера представляло собой полноценную HTML страницу, что-то вроде такого:

<!DOCTYPE html> <html> <head> <title>Тайтл страницы</title> </head> <body> Текст страницы </body> </html>

Конечно же, верстка реального сайта имеет более сложную структуру, что то типа такого:

<!DOCTYPE html> <html> <head> <title>Тайтл страницы</title> </head> <body> <header> хедер </header> <aside> сайдбар </aside> <main> контент </main> <footer> футер </footer> </body> </html>

Очевидно, что все страницы нашего сайта будут иметь какие-то общие части: общий хедер сайта, футер, сайдбары, и отличаться будут только содержимым контента и тайтлом страницы.

Было бы удобнее вынести общий макет страницы в отдельный файл и сделать так, чтобы каждое действие контроллера возвращало в качестве представления только содержимое контента сайта, которое затем будет добавляться в нужное место макета сайта.

Подобная возможность уже встроена в шаблонизатор Blade. Сейчас мы с вами ее и разберем в документации Laravel:

По следующей ссылке изучите раздел Наследование шаблонов (до раздела Отображение данных).

Пусть дана вот такая верстка:

<!DOCTYPE html> <html> <head> <title>Тайтл страницы</title> </head> <body> <header> хедер </header> <aside> сайдбар </aside> <main> контент </main> <footer> футер </footer> </body> </html>

Сделайте данную верстку макетом вашего сайта так, чтобы в тег main загружались представления действий контроллеров.

Сделайте так, чтобы каждое действие отправляло в представление переменную $title, содержащую тайтл страницы. Модифицируйте код предыдущей задачи так, чтобы переданный тайтл попадал в тег title макета сайта.

Сделайте так, чтобы каждое действие отправляло в представление переменную $aside, содержащую дополнительную часть сайдбара. Модифицируйте код предыдущей задачи так, чтобы переданные данные попадали в сайдбар сайта, не удаляя при этом его содержимое, а дописывая переданные данные в конец сайдбара.

Включение подшаблонов

По следующей ссылке изучите раздел Включение подшаблонов (до раздела Отрисовка представлений для коллекций). Решите затем следующие задачи:

Вынесите хедер и футер сайта в отдельные подшаблоны. Разместите их в папке elems. Подключите их к основному макету.