【发布时间】:2016-08-30 20:25:22
【问题描述】:
我已经在我的 Yii 站点中设置了错误处理程序。
这里是代码。
main.php
'errorHandler'=>array(
// use 'site/error' action to display errors
'errorAction'=>'site/error',
),
SiteController.php
public function actionError() {
if ($error = Yii::app()->errorHandler->error) {
if (Yii::app()->request->isAjaxRequest)
echo $error['message'];
else
$this->render('error', $error);
}
}
site/error.php
<?php
$this->pageTitle=Yii::app()->name . ' - Error';
$this->breadcrumbs=array(
'Error',
);
?>
<h2>Error <?php echo $code; ?></h2>
<div class="error">
<?php echo CHtml::encode($message); ?>
</div>
如果 URL 错误或用户调用错误函数,它工作正常并重定向到此自定义错误页面。
例如,如果在站点控制器中我设置了contact 函数并且用户调用这样的 URL localhost.com/site/contactsdffe 然后它会重定向到这个自定义错误页面。
但问题就在这里。
如果控制器函数调用视图联系人并且我没有设置views/site/contact.php 视图,那么它不会被称为这个自定义错误页面。 它给了我这个异常错误。
CException : SiteController 找不到请求的视图“联系人”。
我不知道为什么错误处理程序不适用于这种情况,请告诉我如何为这种错误显示自定义错误页面。
任何帮助将不胜感激。提前致谢!
【问题讨论】:
标签: php yii error-handling