无法在yii中显示错误页面布局

时间:2014-02-12 15:59:44

标签: yii

我能够在我的模块中呈现指定的错误页面,但是我无法在模块之外获得错误布局。

这很奇怪,在我的主配置中我有:

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

我尝试通过将其更改为// site / contact来查看是否指向了正确的文件,并查看是否在出现错误时呈现联系页面。它确实显示出来。

所以路径是正确的,那么为什么它没有显示错误页面?它显示带有异常错误的默认白页。异常页面是我期待的,但它的格式不是。

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));
    }
}

2 个答案:

答案 0 :(得分:1)

您的用户角色无权访问控制器中的actionError()

在站点控制器中,您可以看到名为public function accessRules()的函数。

检查error是为某个用户角色添加的,还是仅用于管理员。

如果找不到error,则将其添加到用户角色。

示例:

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

答案 1 :(得分:0)

您需要在errorXXX中创建views/system。 XXX代表错误代码,在这种情况下很可能是403.有关更多信息,请参阅Yii网站上的this page