2014-02-12 91 views
1

錯誤頁面佈局,我能夠使我指定的錯誤頁面,在我的模塊,但我不能讓我的模塊之外的錯誤佈局。無法顯示在警予

這是很奇怪的,在我的主要配置我:

'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

你需要創建一個在views/systemerrorXXX。 XXX代表錯誤代碼,在這種情況下最有可能是403.欲瞭解更多信息,請參閱Yii網站上的this page

+0

已經嘗試過。不起作用。 – JamAndJammies