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