Symfony 如何将细枝过滤器应用于表单标签(form.name),例如&x27;大写';?

Symfony 如何将细枝过滤器应用于表单标签(form.name),例如&x27;大写';?,symfony,twig,Symfony,Twig,我的问题是只在表单中应用细枝过滤器而不会出现500服务器错误。下面是“Room/new.html.twig”视图中的代码: {{ form_label(form.name) }} 或 两者都将输出:“nom de salle”(“room name”用法语)。这是因为,在我的翻译文件“messages.fr.yml”中,我有: room.name: "nom de salle" 此外,我还使用以下代码在我的表单类型“RoomType.php”中激活了翻译: ->add('name',

我的问题是只在表单中应用细枝过滤器而不会出现500服务器错误。下面是“Room/new.html.twig”视图中的代码:

{{ form_label(form.name) }}

两者都将输出:“nom de salle”(“room name”用法语)。这是因为,在我的翻译文件“messages.fr.yml”中,我有:

room.name: "nom de salle"
此外,我还使用以下代码在我的表单类型“RoomType.php”中激活了翻译:

->add('name', 'text', array(
 'label' => 'room.name'
))

我尝试了所有可能的组合,我认为与|资本化,要么得到一个500服务器错误或根本没有改变。一些例子:

{{ form_label(form.name)|capitalize }}
{{ form_label(form.name, 'room.name'|capitalize) }}
还有更多

有人知道怎么做吗,它似乎不在Symfony文档中。当然,我曾考虑过将译文复制成一个小写字母,另一个以大写字母开头,但这会使目标落空。另外,我还想在这个form_label()函数中使用其他细枝过滤器。
非常感谢您的帮助。

我刚刚找到了解决方案。这太容易了,令人尴尬。我想我不需要| trans,因为它已经被翻译过了,但是如果没有它,'room.name'='nom de salle'将转换为'room.name',而不是'nom de salle'。所以正确的代码是:

{{ form_label(form.name, 'room.name'|trans|capitalize) }}

我忘了说明我正在使用最新版本的Symfony 2.6。我还经常使用许多细枝过滤器,比如视图中的| trans或| capitalize,而且总是有效的。问题只存在于这个form_label()函数中。这很奇怪,因为phpStorm会自动完成,但代码仍然失败。我没有忘记清空缓存。。。。
{{ form_label(form.name, 'room.name'|trans|capitalize) }}