0

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

$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();

一切似乎都井然有序。唯一的区别是在第一个中我检索整个对象,而不仅仅是单个字段。

这个问题发生在所有表上,而不仅仅是这个。我该怎么办?

4

1 回答 1

1

查询不太可能导致挂起,而是您对结果的处理方式。如果你曾经'打印'一个 symfony 对象,你的浏览器会因为所有的递归而挂起。您的第二个查询仅获取标题,因此您不会打印对象,只是一个文本字段。

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

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

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

于 2013-01-07T18:46:34.837 回答