我正在使用symfony2和SonataAdminBundle.我有一个名为Post的简单实体,其中我的内容字段基本上是html文本(来自记录的ckeditor).我需要在Post列表中将内容字段显示为原始html,而不是转义它.像这样黑客攻击base_list_field模板
{% block field %}{{ value|raw }}{% endblock %}
Run Code Online (Sandbox Code Playgroud)
有效,但显然不是正确的方法.任何提示?
编辑:已解决!我在config.yml中为sonata_doctrine_orm_admin定义了一个自定义html类型:
sonata_doctrine_orm_admin:
templates:
types:
list:
html: MyBundle:Default:list_html.html.twig
Run Code Online (Sandbox Code Playgroud)
并创建了自定义list_html.html.twig模板,其中我不转义HTML:
{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
{% block field%}
{{value|raw}}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
现在,在PostAdmin中,我可以在configureListFields方法中定义字段的行为:
$listMapper
->add('content', 'html')
Run Code Online (Sandbox Code Playgroud)