(编辑后期末的解决方案)
我使用最新的Symfony2,创建小应用程序。
我有这个问题:
$qb = $repository->createQueryBuilder('first')
->select('first')
->join('first.second', 'second')
->join('second.third', 'third')
->where('third.id = :id')
->setParameters(array('id' => 1));
$query = $qb->getQuery();
当我打电话
$query->getArrayResult();
一切正常。
但是当我打电话时
$query->getResult();
我返回空白页并在日志中出现此错误:
emergency.EMERGENCY:允许的内存大小为402653184字节耗尽(尝试分配384040960字节){"键入":1,"文件":" / srv / no /vendor/twig/twig/lib/Twig/Extension/Debug.php","line":66} []
我不知道问题出在哪里,这3个表每个都有少于100条记录(50,60,5),查询应该只返回12个对象,而我在twig模板中所做的只是转储这12个对象...
修改
我发现问题出在哪里,看起来整个问题都是twig dump()函数。它会进入无限循环(这就是为什么内存会上升),因为symfony2实体是互连的...所以它的首先转储 - >秒 - >第一次 - >秒......依此类推。
至少这是我的理论,因为只要我停止转储并只显示个别变量,一切都很好。