После входа в систему я хочу, чтобы пользователь перенаправлялся на страницу, например на опрос, чтобы он / она не мог сделать или перейти в другое меню, если он / она не выполнил этот опрос.
Этот опрос поступает из базы данных, которая зависит от временного диапазона.
Если я поставлю каждый контроллер, чтобы проверить, выполнил ли пользователь опрос или нет, и перенаправить на страницу, разве это не будет эффективно?
И если я поставлю его после контроллера входа в систему, пользователь может щелкнуть меню или указать другую маршрутизацию на пройти этот опрос.
2 ответа
Более простым решением было бы перенаправить пользователя к определенному действию после успешного входа в систему. Эти действия вернут пользователя на главную страницу или страницу опроса в зависимости от того, какое условие вы предпочитаете установить. Таким образом, это действие можно рассматривать как точку входа пользователя в систему. Затем, используя диспетчер событий kernel.controller, проверяйте это действие для каждого запроса.
Вам необходимо реализовать прослушиватель kernel.controller
, чтобы проверять какое-либо условие при каждом запросе. Это будет правильный путь. Вам нужно будет определить его только в одном месте.
Вы можете прочитать об этом подходе в официальных документах: http://symfony.com/doc /current/cookbook/event_dispatcher/before_after_filters.html
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.