首页 > 解决方案 > Symfony Omines 数据表在表头中定义了一个 html

问题描述

我在 symfony 5 中使用 omines datatables bundle 如何将复选框定义为数据表标题中的标签?

我正在使用它,但部分代码不起作用

$dataTableFactory->create()
            ->add('selection', TextColumn::class, ['label' => '
<input type="checkbox" name="selectAll" id="selectAll">
'])

感谢您的回答

标签: datatablessymfony5bundles

解决方案


我通过使用表的自定义模板(通过 datatables.yaml,在我的项目中使用原始模板的副本)并更改应用于 column.label 的过滤器来解决此问题:

<th> {{column.label | trans}} </th>

变成

<th> {{column.label | raw}} </th>

如果标签不是变量,它仍然是安全的……否则要小心。

如果 raw 是最后一个过滤器,我们可以保留两个过滤器(https://symfony.com/doc/current/translation/templates.html):

使用翻译标签或过滤器具有相同的效果,但有一个细微的区别:自动输出转义仅适用于使用过滤器的翻译。换句话说,如果您需要确保您的翻译消息没有转义输出,您必须在翻译过滤器之后应用原始过滤器


推荐阅读