所有建议的问题都不适用于此案例,因为我的代码中没有任何foreach,但错误代码一直在说..
我的行动是:
public function doctrinoAction()
{
$id=1;
$em = $this->getDoctrine()->getManager();
$dql = 'SELECT p FROM TPMainBundle:Works p WHERE p.id = :id';
$consulta = $em->createQuery($dql)->setParameters('id', $id);
$productos = $consulta->getResult();
return $this->render('TPMainBundle:Default:indra.html.php', array(
'productos' => $productos,
));
}
我的观点只是:
<?php
echo 'lio';
没有foreach。 我可以在视图中写任何东西,错误代码也是一样的。 我可以将渲染发送到它没有到达的任何视图,错误代码是:
ContextErrorException: Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\TP\vendor\doctrine\orm\lib\Doctrine\ORM\Query.php line 303
我在开发中工作,并清除了缓存..发生了什么事?
唯一存在的&#39; foreach&#39;循环,是位于那个&#34; Query.php&#34;文件,但它不是由我创建的。
query.php的第303行:
foreach ($this->parameters as $parameter) {
$key = $parameter->getName();
$value = $parameter->getValue();
请帮忙
答案 0 :(得分:2)
尝试更改
$consulta = $em->createQuery($dql)->setParameters('id', $id);
对此:
$consulta = $em->createQuery($dql)->setParameter('id', $id);
或者对此:
$params = array('id' => $id);
$consulta = $em->createQuery($dql)->setParameters($params);