42

symfony2 と SonataAdminBundle を使用しています。Post という単純なエンティティがあり、そこには基本的に html テキスト (レコードの ckeditor から) であるコンテンツ フィールドがあります。エスケープせずに、コンテンツ フィールドを raw html として Post リストに表示する必要があります。このような base_list_field テンプレートのハッキング

{% block field %}{{ value|raw }}{% endblock %}

動作しますが、明らかに適切な方法ではありません。

4

2 に答える 2

26

ソリューション:

Sonata_doctrine_orm_admin の config.yml でカスタム html タイプを定義しました。

sonata_doctrine_orm_admin:
    templates:
      types:
        list:
          html: MyBundle:Default:list_html.html.twig

そして、HTML をエスケープしないカスタム list_html.html.twig テンプレートを作成しました。

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}

{% block field%}
    {{value|raw}}
{% endblock %}

PostAdmin では、configureListFields メソッドでフィールドの動作を定義できます。

$listMapper
    ->add('content', 'html')
于 2012-11-12T06:29:50.290 に答える