Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Доброго дня.
Пока новичок в Laravel и PHP в целом. Пишу приложение, которое рассчитано на работу с большим количеством доменов/поддоменов, логика такая:
При обращении к сайту определяется домен/поддомен, далее из базы данных берутся определенные данные в зависимости от домена : шаблон, который определен для сайта в базе - например для site.ru это ../resources/views/templates/shab1, для site2.ru это shab2 и т.д, также если обращение идет по поддомену - выбираются опциональные данные для поддомена (региональная версия сайта, например moscow.site.ru - услуги в Москве). Также в зависимости от домена из базы выбирается контент для сайта, динамическое меню и так далее.
Логику работы вижу так - нужно как-то глобально определять для домена, по которому пользователь обращается к приложению, нужные данные из базы - шаблон, данные для меню, контент и тд, и далее уже работать с этими данными в соответствующих контроллерах и шаблонах, чтобы каждый раз в каждом контроллере не определять домен и нужные для него данные.
Вопрос - каким образом это будет правильнее всего сделать? Насколько понимаю, нужно написать сервис-провайдер для получения данных для домена, который будет инициироваться один раз. Как этот сервис-провайдер вызвать, чтобы не обращаться к роутам?
Возможно подскажете примеры мультисайтовых приложений с подобной логикой работы, на реализацию которых можно посмотреть как на пример?
Не в сети
Нашел решение, написал свой Middleware , повесил его на группу роутов и в middleware получаю и шарю нужные переменные, типа так:
View::share('menu', $menu);
Плюс - сразу в middleware можно и закешировать нужные данные чтобы не получать их каждый раз.
Не в сети