Symfony无法解释的foreach错误,没有任何foreach

时间:2015-08-15 02:27:07

标签: php symfony foreach

所有建议的问题都不适用于此案例,因为我的代码中没有任何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();

请帮忙

1 个答案:

答案 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);