我的问题只是在表单中应用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()函数。 非常感谢,谢谢。
答案 0 :(得分:4)
我刚刚找到了解决方案。它很容易令人尴尬。我以为我不需要| trans,因为它已经翻译但没有它,' room.name' =' nom de salle'会变成' Room.name'而不是'Nom de salle'所以正确的代码就是:
{{ form_label(form.name, 'room.name'|trans|capitalize) }}