我正在尝试使用 twig 宏渲染评论树,但不断收到以下错误:
“属性“comments”和方法“comments()”、“getcomments()”/“iscomments()”/“hascomments()”或“__call()”都不存在并且在类中具有公共访问权限” Doctrine\ORM\PersistentCollection"."
如果需要其他信息,我随时可以提供。
兄弟,
{% macro render_comment_list(post, comments) %}
{% for comment in post.comments %}
<li class="comment" id="comment-{{ comment.id }}">
<span>
{{ comment.author.fullName }}
{{ 'post.commented_on'|trans }}
{{ comment.publishedAt|format_datetime('medium', 'short', '', 'UTC') }}
</span>
{{ comment.content|markdown_to_html|sanitize_html }}
<a href="#comment_content" data-reply data-id="{{ comment.id }}">
{{ 'action.submit_reply'|trans }}
</a>
{% if comment.children %}
{{ _self.render_comment_list(comment.children) }}
{% endif %}
</li>
{% else %}
{{ 'post.no_comments'|trans }}
{% endfor %}
{% endmacro %}
<ul class="comment-list">
{% from 'components/_comment.html.twig' import render_comment_list %}
{{ render_comment_list(post) }}
</ul>
您也需要通过
comments
:
{{ render_comment_list(post, comments) }}
并确保在渲染此模板时,正确暴露
comments
,以便它可以到达它们。