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('@')
),
..
..
..
}
您得到的异常错误是什么?您无权执行此操作。