从Symfony 2.7.3中的数据库中获取对象

时间:2015-08-08 17:00:27

标签: symfony oop orm doctrine-orm twig

我正在尝试显示存储在数据库中的一些对象属性。我有控制器,实体和视图。我没有例外,但我看不到对象属性。

控制器:

/**
* @Route ("/ov", name="ov")
*/
public function select(){

    $a=$this->getDoctrine()->getRepository('AppBundle:PC')->find(2);

    if(!$a){
        throw $this->createNotFoundExcepction('No PC');
    }

   return $this->render('PcDetailed.html.twig', array('pcs' => $a));

}

查看:

{% extends 'master.html.twig' %}
{% block divCentral %}
    <div class="row">
        <p>Nom del pc</p>
        <div class="small-6 small-centered columns">
            {% for pc in pcs %}
                <p>{{ pc.nom }}</p>
            {% endfor %}
        </div>
    </div>
{% endblock %}

编辑:

最后,就像克里斯所说,问题是'因为我正在使用的视图我试图迭代是一个对象,而不是一个数组。这就是为什么不起作用。

这就是我必须这样做的方式:

return $this->render('PcDetailed.html.twig', array('pcs' => array($a)));

1 个答案:

答案 0 :(得分:1)

在您的控制器中,您将获得ID为2的PC并将其传递给视图。

在视图中,您现在尝试迭代此对象。我不知道当你尝试迭代不是数组或集合的东西时TWIG会做什么,但也许它只是无声地失败。

要修复它,请更改控制器代码以将数组发送到视图:

return $this->render('PcDetailed.html.twig', array('pcs' => array($a)));