Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 20.05.2016 22:16:22

Глобальные переменные для multisite-приложения на Laravel

Доброго дня.

Пока новичок в Laravel и PHP в целом. Пишу  приложение, которое рассчитано на работу с большим количеством доменов/поддоменов, логика такая:

При обращении к сайту определяется домен/поддомен, далее из базы данных берутся определенные данные в зависимости от домена : шаблон, который определен для  сайта в базе - например для site.ru это ../resources/views/templates/shab1, для site2.ru это shab2 и т.д, также если обращение идет по поддомену - выбираются опциональные данные для поддомена (региональная версия сайта, например moscow.site.ru - услуги в Москве).  Также в зависимости от домена из базы выбирается контент для сайта, динамическое меню и так далее.

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

Вопрос - каким образом это будет правильнее всего сделать? Насколько понимаю, нужно написать сервис-провайдер для получения данных для домена, который будет инициироваться один раз. Как этот сервис-провайдер вызвать, чтобы не обращаться к роутам?
Возможно подскажете примеры мультисайтовых приложений с подобной логикой работы, на реализацию которых можно посмотреть как на пример?

Не в сети

#2 21.05.2016 02:30:49

Re: Глобальные переменные для multisite-приложения на Laravel

Нашел решение, написал свой Middleware , повесил его на группу роутов и в middleware  получаю и шарю нужные переменные, типа так:

        View::share('menu', $menu);

Плюс - сразу в middleware можно и закешировать нужные данные чтобы не получать их каждый раз.

Не в сети

Подвал раздела