如何将Twig过滤器应用于form_label(form.name),例如“资本”?

时间:2015-01-24 23:12:10

标签: symfony twig

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

{{ form_label(form.name) }}

{{ form_label(form.name, 'room.name') }}

两者都将输出:'nom de salle'(法语中的'房间名称')。那是因为,在我的翻译文件'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 doc中。当然,我考虑重复翻译,使其中一个以小写字母开头,一个以大写字母开头,但这会打败该对象。另外还有其他的Twig过滤器我想用这个form_label()函数。 非常感谢,谢谢。

1 个答案:

答案 0 :(得分:4)

我刚刚找到了解决方案。它很容易令人尴尬。我以为我不需要| trans,因为它已经翻译但没有它,' room.name' =' nom de salle'会变成' Room.name'而不是'Nom de salle'所以正确的代码就是:

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