我的问题涉及在表单中应用 Twig 过滤器而不会出现 500 服务器错误。这是代码,位于 View “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'
))
我尝试了我想到的所有可能的 |capitalize 组合,但要么出现 500 服务器错误,要么根本没有任何变化。一些例子:
{{ form_label(form.name)|capitalize }}
{{ form_label(form.name, 'room.name'|capitalize) }}
还有更多...
有人知道怎么做吗,Symfony 文档中似乎没有。当然,我考虑过将翻译复制为一个小写字母和一个以大写字母开头的翻译,但这会破坏该对象。另外,我想与此 form_label() 函数一起使用其他 Twig 过滤器。 非常感谢您的帮助,谢谢。
最佳答案
我刚刚找到了解决方案。这太容易了,以至于令人尴尬。我以为我不需要 |trans 因为它已经被翻译了,但如果没有它,'room.name' = 'nom de salle' 将转换为 'Room.name' 而不是 'Nom de salle'。所以正确的代码是:
{{ form_label(form.name, 'room.name'|trans|capitalize) }}
关于symfony - 如何将 Twig 过滤器应用于 form_label(form.name),例如 'capitalize'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28131332/