Sonata Admin Bundle上的原始过滤器configureShowFields

时间:2012-05-15 08:39:53

标签: symfony twig symfony-sonata admin-generator

我正在使用Symfony2和Sonata Admin Bundle进行一个项目。 如何在动作configureShowFields中应用twig过滤器(显示格式化文本)?

我不会覆盖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');
    }

2 个答案:

答案 0 :(得分:14)

您可以使用“安全”奏鸣曲字段选项,如下所示:

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 %}

答案 1 :(得分:0)

您需要制作自定义模板。

下:

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

然后制作声明映射到的模板,并将'raw'作为添加字段的第二个参数。然后它会调用您的新模板来渲染该字段。