cr1gger
@cr1gger
Все дороги ведут в Рим — встретимся в Риме!

Как сделать тех. работы на сайте вкл/выкл через catchAll?

Всем привет, возник вопрос о реализации на уже рабочем сайте.
Знаю что в конфиге есть'catchAll' => ['site/offline'],
Как сделать чтобы можно было в базе просто менять одно поле к примеру с названием site_offline 0|1
и если 1 то в конфиге будет catchAll если 0 то его нету и сайт работает. в штатном режиме.
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
myks92
@myks92 Куратор тега Yii
Нашёл решение — пометь вопрос ответом!
Можете использовать как предложил Дмитрий,
'on afterAction'  => function ($event) {
      if ( Yii::$app->siteSettings->get('SITE.OFF_LINE') == 'on' ) {
        if ( !Yii::$app->user->isGuest && !Yii::$app->user->can('admin') ) {
          Yii::$app->user->logout();
          return Yii::$app->response->redirect([ 'offline/off-mode' ]);
        }
      }
      return false;
    },
но вынесите этот код в поведение. В конфиге лучше не оставлять.
Так же можете использовать этот модуль https://github.com/Dominus77/yii2-config-db, или по аналогии этого модуля создать что-то свое.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы