throw exception в behaviors

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
shagrag
Сообщения: 15
Зарегистрирован: 2014.05.03, 07:19

throw exception в behaviors

Сообщение shagrag »

Есть CommonController, в котором обьвлен behaviors (фильтр), от него наследуется frontend\SiteController. Выкидываю в фильтре

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

    
public function beforeAction($action)
{
    throw new ForbiddenHttpException(Yii::t('yii', 'You are not allowed to perform this action.'));
} 
и получаю

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

exception 'yii\web\ForbiddenHttpException' with message 'You are not allowed to perform this action.' in /home/aaa/www/y2adv/vendor/zsoft/filter/RbacFilter.php:32
Stack trace:
#0 /home/aaa/www/y2adv/vendor/yiisoft/yii2/base/ActionFilter.php(71): vendor\zsoft\filter\RbacFilter->beforeAction(Object(yii\web\ErrorAction))
#1 [internal function]: yii\base\ActionFilter->beforeFilter(Object(yii\base\ActionEvent))
#2 /home/aaa/www/y2adv/vendor/yiisoft/yii2/base/Component.php(538): call_user_func(Array, Object(yii\base\ActionEvent))
#3 /home/aaa/www/y2adv/vendor/yiisoft/yii2/base/Controller.php(259): yii\base\Component->trigger('beforeAction', Object(yii\base\ActionEvent))
#4 /home/aaa/www/y2adv/vendor/yiisoft/yii2/web/Controller.php(108): yii\base\Controller->beforeAction(Object(yii\web\ErrorAction))
#5 /home/aaa/www/y2adv/vendor/yiisoft/yii2/base/Controller.php(149): yii\web\Controller->beforeAction(Object(yii\web\ErrorAction))
#6 /home/aaa/www/y2adv/vendor/yiisoft/yii2/base/Module.php(455): yii\base\Controller->runAction('error', Array)
#7 /home/aaa/www/y2adv/vendor/yiisoft/yii2/web/ErrorHandler.php(79): yii\base\Module->runAction('site/error')
#8 /home/aaa/www/y2adv/vendor/yiisoft/yii2/base/ErrorHandler.php(95): yii\web\ErrorHandler->renderException(Object(yii\web\ForbiddenHttpException))
#9 [internal function]: yii\base\ErrorHandler->handleException(Object(yii\web\ForbiddenHttpException))
#10 {main}
Previous exception:
вместо красивой странички с 403. Если выкинуть тот же эксепшен из контроллера - будет красивый 403. Экспешен перехватывается раньше чем надо или наоборот?
Аватара пользователя
VaNnOrus
Сообщения: 96
Зарегистрирован: 2014.10.09, 12:50

Re: throw exception в behaviors

Сообщение VaNnOrus »

Написано ж в ошибке: бефор еррор экшен. То есть до вызова экшена, который отвечает за вывод ошибки.
shagrag
Сообщения: 15
Зарегистрирован: 2014.05.03, 07:19

Re: throw exception в behaviors

Сообщение shagrag »

В AccessControl аналогично происходит. Но там же не выкидывается "голый" эксепшен.
Закрыто