建议的问题都不适用于这种情况,因为我的代码中没有任何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
和我在开发工作,并清除缓存…发生了什么?
唯一存在的'foreach'循环,是位于"Query.php"文件,但它不是由我创建的。
query.php的第303行:
foreach ($this->parameters as $parameter) {
$key = $parameter->getName();
$value = $parameter->getValue();
请帮
尝试更改
$consulta = $em->createQuery($dql)->setParameters('id', $id);
:
$consulta = $em->createQuery($dql)->setParameter('id', $id);
或者:
$params = array('id' => $id);
$consulta = $em->createQuery($dql)->setParameters($params);