Необработанный фильтр в пакете администратора Sonata configureShowFields

Я делаю проект с Symfony2 и Sonata Admin Bundle. Как я могу применить фильтр ветки (для отображения форматированного текста) в действии configureShowFields?

Я бы не переопределял шаблоны Sonata...

Код моего configureShowFields:

protected function configureShowFields(ShowMapper $showMapper)
    {
        $showMapper
            ->add('active')
            ->add('title')
            ->add('subtitle') // I need this field with twig RAW filter
            ->add('description') //I need this field with twig RAW filter
            ->add('url')
            ->add('date')
            ->add('tags')
            ->add('file');
    }

person Mauro    schedule 15.05.2012    source источник
comment
См. аналогичный вопрос SonataAdminBundle пользовательского рендеринга текстовых полей в списке для простого решения.   -  person A.L    schedule 26.10.2014


Ответы (2)


Вы можете использовать опцию «безопасного» поля сонаты следующим образом:

protected function configureShowFields(ShowMapper $showMapper)
{
    $showMapper
        ->add('subtitle', null, array('safe' => true))
    ;
}

Он добавит «сырой» фильтр ветки в ваше поле сущности.

Из base_show_field.html.twig:

{% block field %}
    {% if field_description.options.safe %}
       {{ value|raw }}
    {% else %}
       {{ value|nl2br }}
    {% endif %}
{% endblock %}
person William Vbl    schedule 25.10.2013
comment
это лучший и простой ответ - person Cassiano; 22.03.2016

Вам нужно сделать индивидуальный шаблон.

Под:

sonata_doctrine_orm_admin:
  templates:
    types:
      list:
        array:      SonataAdminBundle:CRUD:list_array.html.twig
        *** other existing declarations ***
        raw:        MyBundle:CRUD:raw.html.twig

Затем создайте шаблон, на который сопоставляется объявление, и укажите «сырой» в качестве второго аргумента для добавления поля. Затем он вызовет ваш новый шаблон для отображения этого поля.

person benlumley    schedule 18.05.2012
comment
Я сделал: - Создал папку в app/Resources/SonataAdminBundle/views/CRUD - Создал в папке файл: base_show_field.html.twig В этом файле поместил: ‹th›{% имя блока %}{{ admin. trans(field_description.label) }}{% endblock %}‹/th› ‹td›{% block field %}{{ value|raw }}{% endblock %}‹/td› - person Mauro; 21.05.2012
comment
Подумайте, это означает, что вы теперь избегаете /всего/ - я предполагаю, что это то, что вы хотите. Для всех остальных - мое предложение выше позволяет вам сделать это только для некоторых полей. - person benlumley; 23.05.2012