即使在调试模式下,Yii也会显示标准错误

时间:2015-05-11 06:08:13

标签: php debugging yii stack-trace

我的CGridView中有一个错误。其中一列尝试从非对象读取属性。就在行之前,这会呈现这个网格视图(即刚好在<?php $this->widget('GridView', array (之上),我放置了以下代码:

<?php
    echo 'YII_DEBUG = '.print_r(YII_DEBUG, TRUE);
    var_dump(YII_DEBUG);
    echo 'YII_TRACE_LEVEL = '.print_r(YII_TRACE_LEVEL, TRUE);
    var_dump(YII_TRACE_LEVEL);
    die();
?>

它给了我以下结果:

YII_DEBUG = 1
bool(true)
YII_TRACE_LEVEL = 3
int(3)

但是,当我删除或注释掉这段代码时,下一行(发生错误)不会导致Yii呈现有关错误的典型的全栈调试信息(包括文件,行和堆栈跟踪)。相反,我看到一个单行错误消息,使用site/error视图呈现,就像我应该看到的那样,当调试实际上被关闭时(但是,它不是):

enter image description here

我几个月来一直在努力解决这个问题,但是我没有任何线索,即使启用了调试模式,Yii也可以忽略调试设置并显示错误而无需调试堆栈跟踪。

任何人都可以帮到这里,至少提供一些提示,我应该从哪里开始寻找?

1 个答案:

答案 0 :(得分:2)

这是设计使然,因为recent change in Yii 1.1.16。需要提出:

week balance
1    0
2    0
3    0  
4    80
5    100

到应用程序的配置数组,在1.1.16中具有与早期版本的Yii相同的行为 - 即在'errorHandler'=>array( 'errorAction' => YII_DEBUG ? null : 'site/error', ), 设置为{{YII_DEBUG时始终呈现全栈错误1}}。