2014-02-12 1 views
1

Я могу отображать мои указанные страницы ошибок в своих модулях, но я не могу получить макеты ошибок за пределами моих модулей.не может отображать макеты страниц ошибок в yii

Это довольно странно, в моей основной конфигурации у меня есть:

'errorHandler'=>array(
      'errorAction'=> '//site/error', 
     ), 

Я пытался увидеть, если она указывает на правильный файл, изменив его // сайт/контакт, и посмотреть, если он отображает контактная страница если ошибка. И это показывает.

Таким образом, путь правильный, то почему он не показывает страницу с ошибкой? Он показывает белую страницу по умолчанию с ошибкой исключения. Страница исключения - это то, что ожидает, но как ее отформатировать нет.

public function actionError() 
{ 
    $this->layout = '/layouts/main'; 
    if($error=Yii::app()->errorHandler->error) 
    { 
     if(Yii::app()->request->isAjaxRequest) 
      echo $error['message']; 
     else 
      $this->render('error', array('error'=>$error)); 
    } 
} 
+0

Что такое ошибка исключение вы получите? –

+0

CHttpException У вас нет прав на выполнение этого действия. – JamAndJammies

ответ

1

Ваша роль пользователя не имеет прав доступа actionError() к контроллеру.

В вашем контроллере сайта вы можете увидеть функцию под названием public function accessRules().

Отметьте error для какой-либо роли пользователя, или это только для администратора.

Если error не найден, добавьте его для ролей пользователей.

Пример:

public function accessRules() 
     { 
       return array(
         array('allow', 
               'actions' => array('index', 'view', 'error'), 
               'users' => array('@') 
         ), 
    .. 
    .. 
    .. 
     } 
+1

это сработало. Я думал, что пробовал это уже ... СПАСИБО! – JamAndJammies

0

Вам нужно создать errorXXX в views/system. XXX обозначает код ошибки, в данном случае, скорее всего, 403. Для получения дополнительной информации см. this page на сайте Yii.

+0

уже пробовал. не работает. – JamAndJammies

Смежные вопросы