Объединение rules в контроллере

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
АлексейАлексей
Сообщения: 60
Зарегистрирован: 2013.03.20, 14:02

Объединение rules в контроллере

Сообщение АлексейАлексей »

Добрый день!
Вопрос в следующем. у меня есть переопределенный контроллер, который наследуют все контроллеры, в нем прописано следующее

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

public function behaviors()
    {
        return ['access' =>                    [
                        'class' => AccessControl::className(),
                        'rules' =>                           [
                                [
                                    'allow'   => true,
                                    'controllers' => ['login'],
                                    'actions' => ['login', 'signup', 'index'],
                                    'roles'   => ['?'],
                                ],
                                [
                                    'allow'   => true,
                                    'actions' => ['logout'],
                                    'roles'   => ['@'],
                                ],
                            ],
                    ]
        ];
    }
Если пользователь не авторизован, то его перекидывает на страницу авторизации.

Так же у меня есть контоллер Test

в нем у меня тоже прописаны права доступа

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

public function behaviors()
    {
        return [
            'access' => [
                'class' => AccessControl::className(),
                'rules' => [
                    [
                        'actions' => ['index'],
                        'allow'   => true,
                    ],
                ],
            ]
        ];
        }

и вот вопрос, как объединить права доступа из наследуемого контроллера и текущего контроллера?

в первом yii я делал так

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

return array_merge(parent::accessRules(), array()....
но тут так уже не прокатит, как быть, подскажите?
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Объединение rules в контроллере

Сообщение slavcodev »

Точно так же. Добавь метод accessRules в базовый контролер и используего для настройки поведения.
Жду Yii 3!
АлексейАлексей
Сообщения: 60
Зарегистрирован: 2013.03.20, 14:02

Re: Объединение rules в контроллере

Сообщение АлексейАлексей »

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

'rules' => array_merge(parent::accessRules(), $this->accessRules()), 
Сделал так, все заработало, спасибо за совет!
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Объединение rules в контроллере

Сообщение slavcodev »

array_merge, все таки лучше делать в методе accessRules, чем трогать behaviors, в каждом контролере.
Жду Yii 3!
Закрыто