Как проверить, есть ли какой-либо сеанс в Yii2 без записи проверки сеанса на каждой странице? - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть приложение, использующее Yii2 framework, шаги по использованию приложений:

  1. Доступ localhost / College / Web / Login
  2. Войдите, используя имя пользователя и пароль
  3. Выберите месяц (здесь пользователь выбирает месяц, а затем выбранный месяц будет установлен в сеанс ) и нажмите кнопку отправить

тогда приложение покажет базу данных за выбранный месяц, а в контроллере я использую сеанс выбранного месяца для фильтрации данных.

Здесь у меня есть проблема, что если пользователь получит доступ к приложению через url localhost / College / Web / Student / Index и т. д. (за исключением localhost / College / Web / Login ), приложения будут перенаправлены на страницу входа, а после ввода учетных данных приложения будут перенаправлятьпользователя на страницу localhost / College / Web / Student / Index , а затем на странице будет отображаться страница с ошибкой.Поскольку нет сеанса в выбранном месяце.

Как я могу установить, если нет сеанса, тогда перенаправить на страницу входа без записи if(!isset(session'selected-month'){ render 'login'; }) на каждой странице?

1 Ответ

0 голосов
/ 24 сентября 2018

Я думаю, что это может помочь вам Yii RBAC создать свой собственный базовый контроллер и функцию поведения перезаписи в соответствии с вашими потребностями.

[
    'class' => AccessControl::className(),
    ...
    'denyCallback' => function ($rule, $action) {
        throw new \Exception('You are not allowed to access this page');
    }
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...