1

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

我不会覆盖奏鸣曲模板...

我的 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');
    }
4

2 回答 2

16

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

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 %}
于 2013-10-25T07:19:46.040 回答
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”作为添加字段的第二个参数。然后它将调用您的新模板来呈现该字段。

于 2012-05-18T14:21:24.370 回答