Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
can';t在yii中显示错误页面布局_Yii - Fatal编程技术网

can';t在yii中显示错误页面布局

can';t在yii中显示错误页面布局,yii,Yii,我能够在我的模块中呈现我指定的错误页面,但是我不能在我的模块之外获得错误布局 很奇怪,在我的主要配置中,我有: 'errorHandler'=>array( 'errorAction'=> '//site/error', ), 我试图通过将其更改为//site/contact来查看它是否指向了正确的文件,并查看它是否在出现错误时呈现了联系人页面。它确实显示了这一点 那么路径是正确的,那么为什么它不显示错误页面呢?它显示带有异常错误的默认白色页

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

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

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

您需要在
views/system
中创建
errorXXX
。XXX代表错误代码,在本例中很可能是403。有关更多信息,请参阅Yii网站。

您的用户角色无权访问controller中的
actionError()

在站点控制器中,您可以看到一个名为
公共函数accessRules()
的函数

检查
错误
是为某些用户角色添加的,或者它仅用于管理员

如果未找到
错误
,则将其添加到用户角色中

示例:

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

您得到的异常错误是什么?您无权执行此操作。