Мы разрабатываем приложение в Laravel 5, где пользователи могут входить в систему, и на основании лицензий, назначенных пользователю, в приложении доступно несколько «типов контента». Бизнес-логика и логика представления отличаются в зависимости от выбранного типа контента. Пользователь может выбрать тип контента для работы или, если доступна только одна лицензия, будет перенаправлен на домашнюю страницу этого типа контента.
Сейчас я пытаюсь понять, как обрабатывать выбранный тип контента. Хранение этого в сеансе не является лучшим способом, потому что пользователь должен иметь возможность использовать несколько типов контента в одном сеансе браузера одновременно.
Я решил, что мне нужно начать с группировки всех соответствующих маршрутов и добавить к ним префикс {contentType}. Кроме того, добавьте промежуточное программное обеспечение (называемое чем-то вроде SelectContentTypeMiddleware) и дайте этому промежуточному программному обеспечению проверить, существует ли тип содержимого и имеет ли авторизованный пользователь доступ к нему.
Кроме того, каждый нисходящий маршрут (в группе маршрутов с префиксом {contentType}) также должен обрабатывать параметр маршрута $ contentType.
Я пытаюсь понять, что это правильный подход. Я смотрел на это Сообщение блога который рассматривает случай для установки локали приложения. Используя app () -> setLocale ($ locale), устанавливается языковой стандарт для этого запроса. Мне было интересно, имеет ли смысл подобный подход для моего случая или что более целесообразно включать параметр маршрута $ contentType в каждый маршрут.
Задача ещё не решена.
Других решений пока нет …