Symfony 2 мультиассоциированная сущность с самореференцией и присоединением

Я пытаюсь сделать классическую систему комментариев-многоуровневых ответов:

Comment 1
Reply 1-1
Reply 1-2
Reply 1-3

Итак, я создал 2 объекта Комментарий а также Ответить определяется :

class Comment
{
[...]
/**
* @ORM\OneToMany(targetEntity="CommentBundle\Entity\Reply", mappedBy="comment")
*/
protected $replies;
[...]class Reply
{
[...]
/**
* @ORM\ManyToOne(targetEntity="CommentBundle\Entity\Comment", inversedBy="replies")
*/
protected $comment;

/**
* children replies
* @ORM\OneToMany(targetEntity="CommentBundle\Entity\Reply", mappedBy="reply")
*/
protected $replies;

/**
* parent reply
* @ORM\ManyToOne(targetEntity="CommentBundle\Entity\Reply", inversedBy="replies")
* @ORM\JoinColumn(name="reply_id", referencedColumnName="id", nullable=true)
*/
protected $reply;
[...]

И связанные запросы:

$qrycomment = "SELECT a, b, c FROM CommentBundle:Comment a LEFT JOIN a.replies b LEFT JOIN b.replies c ";

$qryreply = "SELECT a, b FROM CommentBundle:Reply a LEFT JOIN a.replies b";

Моя проблема :

СЛУЧАЙ 1 : выполнить qryreplies => 1 запрос выполнен => ОК

запрос 1: получить ответ1-1, ответ1-2 и ответ1-3

СЛУЧАЙ 2: выполнить qrycomment => выполнено несколько запросов => KO

запрос 1: получить комментарий 1-1, ответ 1-1

запрос 2: получить ответ1-2

запрос 3: получить ответ1-3

Замечания :

comment.twig:

{% for key,item in items %}
{{ item.description }}<br>
{% include "CommentBundle:Comment:Reply.twig" with {'items': item.getReplies } %}
{% endfor %}

Reply.twig

   {% for key,item in items %}
Reply :
{{ item.description }}
{% include "CommentBundle:Comment:Reply.twig" with {'items': item.getReplies } %}
{% endfor %}

Я надеюсь, что мои объяснения достаточно ясны.
Спасибо за вашу помощь.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]