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

Posted

技术标签:

【中文标题】SonataAdminBundle 自定义呈现列表中的文本字段【英文标题】:SonataAdminBundle custom rendering of text fields in list 【发布时间】:2012-02-02 12:09:07 【问题描述】:

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

% block field % value|raw % endblock %

有效,但显然不是正确的方法。

【问题讨论】:

您应该添加自己的答案并接受它(经过一小段延迟,我认为自我接受需要两天时间),而不是使用解决方案编辑您的答案。 【参考方案1】:

解决办法:

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

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

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

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

% block field%
    value|raw
% endblock %

现在在 PostAdmin 中,我可以在 configureListFields 方法中定义字段的行为:

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于SonataAdminBundle 自定义呈现列表中的文本字段的主要内容,如果未能解决你的问题,请参考以下文章

自定义表单域渲染

SonataAdminBundle 如何在列表视图中对列的值求和

将自定义组件呈现为列表项

Sonata Admin Bundle - 添加多步骤批处理操作

Sonata Admin:添加自定义触发器/动作到列表/编辑动作

具有图层列表背景可绘制的自定义视图呈现黑屏