Ich habe Probleme mit Kommentaren in Zweig anzeigen. Sie sind sichtbar, wenn ich sie alle aufliste, aber ich brauche sie, um verschachtelt zu werden.wie Kommentare im Zweig rekursiv anzuzeigen
Diese Entität ist, dachte ich, es sollte wie folgt referenziert werden:
/**
* @var \AppBundle\Entity\Comment
*
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Comment")
* @ORM\JoinColumn(name="parentId", referencedColumnName="id")
*/
private $parentId;
Controller ist einfach, holt alle Kommentare von db und kehrt Array (mit und ohne parentId) einige Anweisung folgend i dieser hinzugefügt zur Hauptzweigdatei:
<!-- Comments and omments with parentId -->
{% include 'front/main/comments-main.html.twig' with {'commments':comments} %}
Alle Kommentare auflisten funktioniert. Aber im mitgelieferten Zweig scheint dieser Frieden des Codes
{% if comment.parentId != null %}
{% set children = [] %}
{% set children = children|merge([ comment ]) %}
{% include 'front/main/comments-main.html.twig' with {'comments':children} %}
{% endif %}
funktioniert nicht. Wenn ich etwas stimme, wird es an der richtigen Stelle angezeigt, unter Kommentar mit dieser ID. Aber mit diesen Zeilen, wenn nicht. Die Seiten werden sehr langsam geladen und enden nie. Wie Endlosschleife. Was mache ich falsch?
Sie müssen mit 'macro's' arbeiten, diese zu lösen, haben einen Blick auf diese [Antwort] (https://stackoverflow.com/questions/45955614/multi-level-menu-with-twig/45956255# 45956255) – DarkBee
Ich folgte diesem https://stackoverflow.com/questions/8326482/how-to-render-a-tree-in-twig. erste Antwort von Random-Coder-1920. Er hat es sowohl mit Makros als auch ohne Makro getan. Ich werde versuchen, Makro .... –
Ja, aber er verwendet ein Subtemplate zu enthalten. Sie fügen die gesamte Vorlage erneut ein, was zur Endlosschleife führt. 'Macro's' sind nur ein bisschen sauberer, um das zu lösen (und sind wiederverwendbar) – DarkBee