SonataAdminBundle пользовательский рендеринг текстовых полей в списке

43

Я использую symfony2 и SonataAdminBundle. У меня есть простая Entity, называемая Post, в которой у меня есть поле содержимого, которое является в основном html-текстом (из cceditor для записи). Мне нужно отобразить в столбце "Сообщение" содержимое поля как raw html, не избегая его. Взлом шаблона base_list_field, подобный этому

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

работает, но это явно не так. Любые подсказки?

изменить: РЕШАЕМ! Я определил пользовательский тип html в config.yml для sonata_doctrine_orm_admin:

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

И создал пользовательский шаблон list_html.html.twig, в котором я не избегаю HTML:

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

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

Теперь в PostAdmin я могу определить поведение поля в методе configureListFields:

$listMapper
    ->add('content', 'html')
  • 11
    Вы должны добавить свой собственный ответ и принять его (после небольшой задержки, я думаю, что это два дня для самостоятельного принятия) вместо того, чтобы редактировать свой ответ с решением.
Теги:
twig
sonata-admin

1 ответ

25

Решение:

Я определил пользовательский тип html в config.yml для sonata_doctrine_orm_admin:

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

И создал пользовательский шаблон list_html.html.twig, в котором я не избегаю HTML:

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

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

Теперь в PostAdmin я могу определить поведение поля в методе configureListFields:

$listMapper
    ->add('content', 'html')

Ещё вопросы

Сообщество Overcoder
Наверх
Меню