Symfony2 -在twig中获得一个实体而不是PersistentCollection


Symfony2 - Get an entity instead of PersistentCollection in twig

我正在使用symfony2,我无法在twig中获得我的相关实体。

我有一个主实体,我们叫它Post,它有一个OneToMany关系:

/**
 * @ORM'OneToMany(targetEntity="Comment", mappedBy="Post", cascade={"persist", "remove"})
 */
private $comments;

和我传递它与我的控制器树枝,我可以访问每个属性,但当我试图访问一个属性的关系,如"评论",我得到一个"Doctrine'ORM'PersistentCollection)"它有很多私有属性,我无法获得这个相关实体的属性……

我有点困惑,我不知道我做错了什么…

获取twig中学说集的第一项

如果集合中只有一个对象,则可以通过使用first方法获得它

{% set comment = post.comments.first %}

PersistentCollection: first() method

将DoctrineCollection转换为数组

要将原则集合转换为数组,可以使用getValues()方法:

{% set arrayComment = post.comments.getValues %}

PersistentCollection: getValues()方法

这是因为您正在尝试直接访问实体集合。你必须循环你的注释集合:

{% for comment in post.comments %}
    // You can get your comment entity here 
    // for example
    <p>{{comment.description}}</p>
{% endfor %}