SonataAdminBundle使用嵌套实体configureShowFields

时间:2016-12-06 17:45:57

标签: php symfony sonata-admin

对于使用symfony2和SonataAdminBundle的项目,我试图弄清楚如何在show动作中嵌入完整的相关实体。

要详细了解,请说我有ArticleComment。在Article的展示视图中,我希望每个Comment显示多个属性以及每个属性上的编辑,并创建一个CREATE以向Article添加另一条评论

我能够让它显示Comment个实体列表,这些实体使用->add('comments')链接到实体,但这还不够。我需要真正嵌入实体!

有没有办法在没有自己编码的情况下执行此操作?如果手动操作是唯一的方法,那么最好的方法是什么?重写模板?

1 个答案:

答案 0 :(得分:1)

最简单的方法是为集合指定模板:

$showMapper->add('comments', 'collection', [
    'template' => 'YourBundle:SomePath:SubPath/show_comment_collection.html.twig',
]);

SonataAdminBundle:CRUD:base_show_field.html.twig查找要用作示例的模板。并且,在该模板中,您可以遍历value变量。例如:

{% block field %}
    <ul>
    {% for comment in value %}
        <li><a href="{{ path('some_route', {'id': comment.id}) }}">
            {{ comment.id }} - {{ comment.otherProperty}}</a>
        </li>
    {% else %}
        <li>No comments</li>
    {% endfor %}
    </ul>
{% endblock %}