Laravel 5 как правильно выводить мета-теги?

Есть основной шаблон, в котором есть место под вывод мета-тегов и заголовка страницы.
Каждый из контроллеров (для любой страницы сайта, будь то новости, статьи и т.д.) получает через модель нужную информацию, подключает нужную вьюшку и выводит эту информацию - все просто. Если, скажем, мы зашли внутрь новости, то метод Show контроллера передает во вьюшку через переменную $news всю нужную информацию о новости. В том числе и мета-теги и заголовок. Т.е. $news->meta...
Но, допустим, ситуация, когда у новости не заданы мета-теги, в этом случае нужно вывести мета-теги по умолчанию. Конечно, можно сделать это внутри контроллера новостей, но ведь разделов сайта много, не будешь же в каждом контроллере прописывать мета-теги по умолчанию Поэтому напрашивается вопрос: как организовать вывод мета-тегов таким образом, чтобы где-то в одном месте им присваивались бы значения по-умолчанию, а далее уже контроллеры в случае наличия мета-тегов для выводимой на страницу информации, заменяли бы эти мета-теги по умолчанию актуальными.

А в идеале сделать и вовсе так: создать некий отдельный контроллер, который отвечал бы за формирование мета-тегов, независимо от того в каком разделе находимся. И в шаблон выводил бы эти мета-теги типа такого { meta::showMetaTags }
Т.е. этот контроллер получал бы информацию о текущем разделе, брал бы из базы нужные данные и выводил в шаблон.

Кто-нибудь подскажет как это сделать?
  • Вопрос задан
  • 1660 просмотров
Пригласить эксперта
Ответы на вопрос 2
Denormalization
@Denormalization
https://laravel.com/docs/5.2/views#view-composers
или view()->share()

Читаем, выбираем.
Ответ написан
Tesla
@Tesla
Я просто в layout.blade прописываю <title>@yield('title', 'Default value')</title>
Если дочерний шаблон не устанавливает секцию 'title', то выводится 'Default value'.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы