Render из beforeAction или init контроллера

Всё про контроль доступа пользователей: фильтры, RBAC, проверки
Ответить
backend
Сообщения: 15
Зарегистрирован: 2017.10.29, 11:53

Render из beforeAction или init контроллера

Сообщение backend »

Привет!
Как реализовать рендер из beforeAction или подменить финальный метод(action) в контроллере.
Задача подменить вид по определенному условию без редиректа(например, если юзер не залогинился, то не отправлять его на страницу логина а выкинуть плашку)...возможно надо копать в сторону init контроллера, подскажите, плиз!!!

Код: Выделить всё

public function beforeAction($action)
    {
        //как сделать рендер отсюда

        return parent::beforeAction($action); // TODO: Change the autogenerated stub
    }
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Render из beforeAction или init контроллера

Сообщение zelenin »

if (...) {
$this->render(...);
} else {
$this->render(...);
}
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Render из beforeAction или init контроллера

Сообщение andku83 »

Код: Выделить всё

    public function beforeAction($action)
    {
        $this->action->actionMethod = 'actionOther';
//        dd($this);
        return parent::beforeAction($action);
    }
backend
Сообщения: 15
Зарегистрирован: 2017.10.29, 11:53

Re: Render из beforeAction или init контроллера

Сообщение backend »

zelenin писал(а): 2018.03.14, 16:55 if (...) {
$this->render(...);
} else {
$this->render(...);
}
Сработало только так

Код: Выделить всё

    
    public function beforeAction($action)
    {
      
        if(...) {
            echo $this->render('access_denied');
            return false; //ЧТОБЫ ПРЕДОТВРАТИТЬ СРАБАТЫВАНИЕ RENDER ЗАПРОШЕННОГО ЭКШЕНА
        }

        return parent::beforeAction($action); // TODO: Change the autogenerated stub
    }
Последний раз редактировалось backend 2018.03.16, 13:49, всего редактировалось 1 раз.
backend
Сообщения: 15
Зарегистрирован: 2017.10.29, 11:53

Re: Render из beforeAction или init контроллера

Сообщение backend »

Спасибо всем! Решено!
Ответить