Вывод ошибки 403 в своем лэйауте

Приветствую.

По мотивам wiki сделал вывод ошибок в своем лэйауте.

Экшн выглядит вот так:




    public function actionError()

    {

        if($error=Yii::app()->errorHandler->error)

        {

            if(Yii::app()->request->isAjaxRequest)

                echo $error['message'];

            else

                $this->render('error', $error);

        }

    }



Почему то ошибка 403 выводится в стандартном шаблоне Yii, хотя 404 перехватывается и выводится в моем лэйауте.

Что нужно сделать, чтобы ошибка 403 выводилась тоже в определенном мной лэйауте?

Похоже, что вы что-то не правильно делаете. Может быть 403-я ошибка выскакивает в модуле?

У меня приложение разделено на несколько частей как написано здесь. У каждой части есть свой конфиг, который выглядит примерно вот так:




return CMap::mergeArray(

    require(dirname(__FILE__).'/main.php'),

    array(

        'components'=>array(

            'urlManager'=>array(

                'urlFormat'=>'path',

                'urlSuffix'=>'.html',

                'showScriptName'=>false,

                'rules'=>array(

                    'admin'=>'site/index',

                    'admin/<_c>'=>'<_c>',

                    'admin/<_c>/<_a>'=>'<_c>/<_a>',

                ),

            ),

            'errorHandler'=>array(

                // use 'site/error' action to display errors

                'errorAction'=>'site/error',

            ),

        ),

    )

);



У каждого раздела есть свой контроллер Site с экшеном Error, который показан в моем первом посте. Во всех частях приложения ошибка 404 отрабатывается нормально (в каждой части свой layout), а вот 403 вылетает layout Yii (без оформление с трейсом).

403 это Access Denied - что у вас отвечает за права доступа?

Фильтр accessControl, права разграничены на основе CPhpAuthManager.