Есть основной шаблон, в котором есть место под вывод мета-тегов и заголовка страницы.
Каждый из контроллеров (для любой страницы сайта, будь то новости, статьи и т.д.) получает через модель нужную информацию, подключает нужную вьюшку и выводит эту информацию - все просто. Если, скажем, мы зашли внутрь новости, то метод Show контроллера передает во вьюшку через переменную $news всю нужную информацию о новости. В том числе и мета-теги и заголовок. Т.е. $news->meta...
Но, допустим, ситуация, когда у новости не заданы мета-теги, в этом случае нужно вывести мета-теги по умолчанию. Конечно, можно сделать это внутри контроллера новостей, но ведь разделов сайта много, не будешь же в каждом контроллере прописывать мета-теги по умолчанию Поэтому напрашивается вопрос: как организовать вывод мета-тегов таким образом, чтобы где-то в одном месте им присваивались бы значения по-умолчанию, а далее уже контроллеры в случае наличия мета-тегов для выводимой на страницу информации, заменяли бы эти мета-теги по умолчанию актуальными.
А в идеале сделать и вовсе так: создать некий отдельный контроллер, который отвечал бы за формирование мета-тегов, независимо от того в каком разделе находимся. И в шаблон выводил бы эти мета-теги типа такого { meta::showMetaTags }
Т.е. этот контроллер получал бы информацию о текущем разделе, брал бы из базы нужные данные и выводил в шаблон.
Если я все правильно понял, то метод share предназначен для установки возможности доступа к переменным внутри всех вьюшек. Это очень полезно, спасибо за наводку, но у меня все еще остался вопрос. Мне кажется, что у меня немного другой случай. Мне необходимо, чтобы внутри контроллера, который берет контент из базы и выводит на страницу (например, те же новости), была возможность получить доступ к некому свойству, содержащему мета-теги по умолчанию. Получили новость из базы, взяли ее мета-теги, в случае если мета-теги пустые, то взяли их из этого свойства с тегами по умолчанию. Так вот как организовать такую схему, чтобы внутри всех контроллеров была возможность получить доступ к этому свойству?
Дмитрий: мой ответ каксался последнего пункта вопроса.
"А в идеале сделать и вовсе так: создать некий отдельный контроллер, который отвечал бы за формирование мета-тегов, независимо от того в каком разделе находимся."
Я просто в layout.blade прописываю <title>@yield('title', 'Default value')</title>
Если дочерний шаблон не устанавливает секцию 'title', то выводится 'Default value'.
Tesla: а как ваш метод Seo::get узнает из какой таблицы извлекать данные? Ведь вы в name передаете только имя конкретной записи, насколько я понял. А к чему относится эта запись - к новостям, статьям, каталогу и т.д. - неизвестно...
И можно сразу еще один вопрос. Вы эту строку Seo::get... вызываете прямо во вьюшке?