【问题标题】:Raw filter on Sonata Admin Bundle configureShowFieldsSonata Admin Bundle configureShowFields 上的原始过滤器
【发布时间】:2012-05-15 08:39:53
【问题描述】:

我正在使用 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');
    }

【问题讨论】:

标签: symfony twig symfony-sonata admin-generator


【解决方案1】:

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

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

【讨论】:

  • 这是最好最简单的答案
【解决方案2】:

您需要制作一个自定义模板。

下:

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

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

【讨论】:

  • 我已经完成了: - 在 app / Resources / SonataAdminBundle / views / CRUD 中创建一个文件夹 - 在文件夹中创建一个文件:base_show_field.html.twig 在这个文件中放入:{%块名称 %}{{ admin.trans(field_description.label) }}{% endblock %} {% 块字段 %}{{ value|raw }}{% endblock %}
  • 认为这意味着你现在正在逃避 /everything/ - 我猜这就是你想要的。对于其他所有人 - 我上面的建议只允许您对某些字段执行此操作。
猜你喜欢
  • 2016-05-28
  • 2016-09-03
  • 2016-06-11
  • 2016-04-20
  • 2017-10-03
  • 1970-01-01
  • 2013-03-06
  • 2019-03-17
  • 2016-10-11
相关资源
最近更新 更多