Дополню своим ответом.
При использовании таких настроек в SiteController.php у меня появляется
код ошибки 500
Это происходит, когда у пользователя нет роли admin.
public function behaviors() {
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'allow' => true,
'roles' => ['admin']
],
],
],
];
}
/**
* {@inheritdoc}
*/
public function actions()
{
return [
'error' => [
'class' => ErrorAction::class,
// Тут можно добавить свой шаблон.
// Или ничего не указывать, при этом будет использоваться тот, который прописан в 'errorHandler'
'view' => 'site/error',
'layout' => 'error'
]
];
}
И сообщение:
An Error occurred while handling another error:
yii\web\ForbiddenHttpException: Вам не разрешено производить данное действие. in \vendor\yiisoft\yii2\filters\AccessControl.php:158
Оказывается, что дело не доходит до
403 ошибки. Оно прерывается раньше.
Решение добавить исключение для контроллера error:public function behaviors() {
return [
'access' => [
'class' => AccessControl::className(),
'except' => ['error'],
'rules' => [
[
'allow' => true,
'roles' => ['admin']
],
],
],
];
}
илиpublic function behaviors() {
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'actions' => ['error'],
'allow' => true,
],
[
'allow' => true,
'roles' => ['admin']
],
],
],
];
}