Symfony2-получить сущность вместо PersistentCollection в twig

Я новичок в symfony2, и мне не удается получить мою связанную сущность в twig.

Итак, у меня есть моя основная сущность, назовем ее Post, которая имеет отношение OneToMany:

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

и я передаю его twig с моим контроллером, я могу получить доступ к каждому свойству, но когда я пытаюсь получить доступ к свойству с отношениями типа "комментарий", я получаю "доктринаORMPersistentCollection)" который имеет много частной собственности, и я не могу получить свойства этого связанного объекта...

Я немного смущен, и я не знаю, что я делаю неправильно...

2 ответов


Это потому, что вы пытаетесь получить доступ к коллекции сущностей напрямую. Вы должны зациклить свою коллекцию комментариев:

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

получить первый элемент коллекции доктрины в twig

Если у вас есть только 1 объект в коллекции, вы можете получить его с помощью first метод

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

PersistentCollection: метод first ()

преобразование DoctrineCollection в массив в twig

для преобразования коллекции doctrine в массив можно использовать метод getValues () :

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

PersistentCollection: getValues() метод