Symfony2 - 在树枝中获取实体而不是PersistentCollection

时间:2014-07-09 09:01:49

标签: php symfony doctrine-orm

我使用的是symfony2,而我却无法将我的相关实体放入树枝中。

所以我有我的主要实体,让我们称之为Post,它有一个OneToMany关系:

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

我用控制器将它传递给树枝,我可以访问每个房产,但是当我尝试访问一个像#34;评论"这样的关系的房产时,我得到了一个" Doctrine \ ORM \ PersistentCollection)" 有很多私有财产,我无法获得这个相关实体的属性...

我有点困惑,我不知道自己做错了什么......

2 个答案:

答案 0 :(得分:7)

在树枝中获取第一项教条集

如果您在集合中只有一个对象,那么您可以使用first方法获取它

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

PersistentCollection: first() method

将DoctrineCollection转换为树枝中的数组

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

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

PersistentCollection: getValues() method

答案 1 :(得分:4)

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

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