嗨我在我的php网站上遇到死亡的白色屏幕,只有在给定某个查询时才会出现,我似乎无法找到任何错误。我试着查看var / logs / apache2并查找php错误日志,但没有。
我正在使用yii。我有一个列出过滤内容的页面。在我的控制器中,我有一个查询:
$model= Person::model()->findbyPk('12345');
$list = $model->contacts;
“联系人”是“人”模型的关系,列表是我应该展示的。如果我使用键'12345','14256和'23489'查询人,页面将正确显示。但是当我查询特定的'10012'时,它会给我一个没有错误且没有样式格式的白色屏幕。只是一个空白的屏幕。并且它的加载时间实际上比其他查询更长。我尝试记录它并检查共享数据/运行时但它甚至无法到达控制器。这恰好发生在这个特定的人身上。
最可能的原因是什么?
答案 0 :(得分:0)
您需要检查是否在$ model中获得了结果。试试这个
$model= Person::model()->findbyPk('12345');
if($model=== NULL)
{
throw new CHttpException('I am empty. Please try another key');
}
else
{
// whatever you wanna do
}
答案 1 :(得分:0)
步骤:
1)启用Yii DEBUG模式。 2)启用php上的所有错误报告.3)在this的帮助下启用Yii Profiling。并在使用之前检查人物模型,如下所示。
$model= Person::model()->findbyPk('12345');
if($model === NULL)
{
throw new CHttpException('There is no record with this key.');
}
// Normal expected code .
答案 2 :(得分:0)
主要问题是Person
模型的关系contacts
中的数据太多。这种关系是一对多的。解决方案是使用其他方式/查询获取联系人。
我仍然不确定的是,当我在运行查询的控制器中登录时,它甚至无法到达控制器。即使日志是在查询运行之前,例如
function actionListContacts() {
Yii::log('Ireached this function');
$request = Yii::app()->request;
$personId = $request->get('personId');
$model = Person::model()->findByPk($personId);
// This is where the query for contacts should start..
$contacts = $person->contacts;
$this->render(['contacts' => $contacts]);
}
如果我使用id'12345',渲染成功,如果我检查日志,我可以看到我的日志。但是,当我使用10012,这导致白页和我检查日志,它甚至没有到达控制器。顺便说一句,id'10012'是自己检查数据库的。 :)