У меня есть ошибка в моем 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
Представьте, как я должен это видеть, когда отладка будет фактически отключена (но это не так):
Я боролся с этим в течение нескольких месяцев, но я не знаю, что может заставить Yii игнорировать настройки отладки и отображать ошибки без трассировки стека отладки даже при включенном режиме отладки.
Может ли кто-нибудь помочь здесь, по крайней мере, дать несколько советов, где я должен начать искать?
Это по замыслу, из-за недавнее изменение в Yii 1.1.16. Надо поставить:
'errorHandler'=>array(
'errorAction' => YII_DEBUG ? null : 'site/error',
),
к массиву конфигурации приложения, чтобы в 1.1.16 было то же поведение, что и в более ранних версиях Yii, то есть чтобы всегда отображались ошибки полного стека, когда YII_DEBUG
установлен в true
,
Других решений пока нет …