Yii学习之自定义服务器错误处理页面

Yii学习之自定义服务器错误处理页面

服务器通常会发生一些异常之类的,比如你使用未定义的变量或者参数传递错误,这种情况下,默认yii是直接输出到终端用户的,这对于一个成熟的网站是很难接受的。因为

  • 暴露了网站内部的内容
  • 对终端用户来说不友好

 

那怎么来解决这个问题呢?

使用yii错误处理机制,

在protected/config/main.php

定义error处理的

controller和action:

return array(
    ......
    'components'=>array(
        'errorHandler'=>array(
            'errorAction'=>'site/error',
        ),
    ),
);

再去查看:

protected/controller/SiteController

 35     /**         
 36      * This is the action to handle external exceptions.
 37      */
 38     public function actionError()
 39     {
 42         if($error=Yii::app()->errorHandler->error)
 43         {
 44             if(Yii::app()->request->isAjaxRequest)
 45                 echo $error[‘message’];
 46             else
 47                 $this->render('error', $error);
 48         }
 49     }

因此有3个选择,

  • 从config/main.php中直接替换掉错误处理的controller
  • 继续使用这个controller不过更改对应的action
  • 继续使用这个controller和action,不过更改对应的view

 

详细内容,请参看yii官方帮助文档:

http://www.yiiframework.com/doc/guide/1.1/en/topics.error

 

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

Leave a Reply

Your email address will not be published. Required fields are marked *