Doctrine 2查询会导致网页冻结

时间:2013-01-07 17:50:04

标签: symfony doctrine

当我尝试在操作控制器中运行此查询时,我的浏览器页面会冻结:

$query = $em->createQuery('SELECT c FROM Baza\BlogBundle\Entity\Conferences c WHERE c.locationid= ?1');
            $query->setParameter(1, 5);
            $id = $query->getResult();

但是当我执行任何其他查询时:

$query = $em->createQuery('SELECT c.title FROM Baza\BlogBundle\Entity\Conferences c WHERE c.locationid= ?1');
            $query->setParameter(1, 5);
            $id = $query->getResult();
一切似乎都井然有序。唯一的区别是,在第一个中我检索整个对象,而不仅仅是单个字段。

所有表格都会出现此问题,而不仅仅是这个问题。我该怎么办?

1 个答案:

答案 0 :(得分:1)

查询导致挂起的可能性很小,而是之后对结果执行的操作。如果您正在“打印”symfony对象,则由于所有递归,您的浏览器将挂起。您的第二个查询只提取标题,因此您不会打印对象,只打印文本字段。

一个简单的解决方法是更改​​第一个查询的最后一行:

 $id = ($query->getResult())->getTitle();

(或任何有意义的功能)。如果这不能解决问题,则需要查看更多代码。