SonataAdminBundle 自定义呈现列表中的文本字段

发布于 2024-12-25 00:12:09 字数 252 浏览 1 评论 0原文

我正在使用 symfony2 和 SonataAdminBundle。 我有一个名为 Post 的简单实体,其中的内容字段基本上是 html 文本(来自 ckeditor 进行记录)。我需要在帖子列表中将内容字段显示为原始 html,而不转义它。 像这样破解 base_list_field 模板

{% block field %}{{ value|raw }}{% endblock %}

是可行的,但这显然不是正确的方法。

I'm using symfony2 and SonataAdminBundle.
I have a simple Entity called Post in which I have content field that is basically html text (from a ckeditor for the record). I need to display in the Post list the content field as raw html, without escaping it.
Hacking base_list_field template like this

{% block field %}{{ value|raw }}{% endblock %}

works, but it's clearly not the proper way.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

遥远的绿洲 2025-01-01 00:12:09

解决方案:

我在 config.yml 中为 sonata_doctrine_orm_admin 定义了一个自定义 html 类型:

sonata_doctrine_orm_admin:
    templates:
      types:
        list:
          html: MyBundle:Default:list_html.html.twig

并创建了自定义 list_html.html.twig 模板,其中我不转义 HTML:

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}

{% block field%}
    {{value|raw}}
{% endblock %}

现在在 PostAdmin 中我可以定义该字段的行为配置列表字段方法:

$listMapper
    ->add('content', 'html')

The solution:

I've defined a custom html type in the config.yml for sonata_doctrine_orm_admin:

sonata_doctrine_orm_admin:
    templates:
      types:
        list:
          html: MyBundle:Default:list_html.html.twig

And created the custom list_html.html.twig template in which i do not escape HTML:

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}

{% block field%}
    {{value|raw}}
{% endblock %}

Now in the PostAdmin I can define the behaviour of the field in the configureListFields method:

$listMapper
    ->add('content', 'html')
扛起拖把扫天下 2025-01-01 00:12:09

我知道这是一篇已接受答案的旧帖子,但现在您还可以使用 safe 选项告诉 Symfony 不要清理输出。

$mapper->add('content', null, [
            'safe' => true,
        ]);

I know it's an old post that has an accepted answer, but now you can also use the safe option to tell Symfony not to sanitize the output.

$mapper->add('content', null, [
            'safe' => true,
        ]);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文