2016-12-06 8 views
0

symfony2とSonataAdminBundleを使用するプロジェクトでは、完全な関連エンティティをshowアクションに埋め込む方法を見つけようとしています。SonataAdminBundleネストしたエンティティを持つconfigureShowFields

詳しくは、ArticleCommentがあるとします。 Articleのショービューでは、複数のプロパティーを持つCommentとそれぞれのEDITを表示し、別のコメントを追加するCREATEをArticleに追加したいと思います。

->add('comments')を使用してエンティティにリンクするCommentエンティティのリストを表示することができましたが、これでは不十分です。エンティティを実際に埋め込む必要があります。

私たち自身でコーディングせずにこれを行う方法はありますか?手動で行うことが唯一の方法であれば、最良のアプローチは何ですか?テンプレートを書き直しますか?例として使用するテンプレートのSonataAdminBundle:CRUD:base_show_field.html.twig

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

はルック:

答えて

1

最も簡単な方法は、コレクションのためのテンプレートを指定することです。そのテンプレートでは、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 %} 
関連する問題