Symfony5+EasyAdmin:详情模态框HTML化显示TextEditorField内容
解决方案
方法一:改用HtmlField(推荐)
直接把用于查看模态框的TextEditorField替换成HtmlField,它会自动渲染HTML内容,同时在列表中显示内容摘要,点击查看按钮弹出的模态框里会展示完整的格式化内容,完美匹配你的需求。
修改后的CRUD字段代码:
// 表单编辑用的字段保持不变 TextEditorField::new('contenu', 'Descriptif')->setFormType(CKEditorType::class)->onlyOnForms(), // 查看模态框用的字段替换为HtmlField HtmlField::new('contenu', 'Descriptif')->hideOnForm(),
HtmlField默认会在列表中截断过长内容,点击查看模态框时加载完整的格式化HTML,正好解决你之前用TextareaField时内容过长的问题,无需额外配置。
方法二:自定义TextEditorField的渲染模板
如果坚持使用TextEditorField,可以通过自定义Twig模板让它在查看模态框中渲染HTML:
- 修改CRUD中的字段声明,指定自定义模板路径:
TextEditorField::new('contenu', 'Descriptif')->setFormType(CKEditorType::class)->onlyOnForms(), TextEditorField::new('contenu', 'Descriptif') ->hideOnForm() ->setTemplatePath('admin/field/html_text_editor.html.twig'),
- 在项目中创建模板文件
templates/admin/field/html_text_editor.html.twig,内容如下:
{% block field %} {{ value|raw }} {% endblock %}
这个模板会直接将字段值作为原始HTML输出,实现模态框中显示格式化内容的效果。
内容的提问来源于stack exchange,提问作者Eclat
相关产品推荐
相关产品推荐

