2012-05-15 44 views
0

我正在使用Symfony2和Sonata管理软件包进行项目。 如何在action的configureShowFields中应用过滤器原始的小枝(显示格式化文本)?Sonata管理软件包上的原始过滤器configureShowFields

我不会重写索纳塔模板...

我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'); 
    } 
+0

见一个简单的类似的问题(http://stackoverflow.com/q/8729439/2257664)列表的文本字段的自定义SonataAdminBundle渲染]解。 –

回答

0

你需要做一个自定义模板。

下:

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

然后作出这样的声明映射到,并给予“原始”来添加字段的第二个参数的模板。然后它会调用您的新模板来渲染该字段。

+0

我做: - 在应用程序中创建一个文件夹/资源/ SonataAdminBundle /视图/ CRUD - 创建文件夹中的文件:base_show_field.html.twig 在这个文件中放: {%块名称%} {{admin.trans(field_description.label)}} {%endblock%} ​​{%block field%} {{value | raw}} {%endblock%} – Mauro

+1

想想这意味着您现在正在转义/ everything/- 我猜是你想要的。对于其他人 - 我上面的建议只允许你在一些领域做到这一点。 – benlumley

+0

你是对的!谢谢 – Mauro

12

您可以使用“安全”奏鸣曲场选项如下:

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

这是最好,最简单的答案 – Cassiano

相关问题