symfony - 如何将 Twig 过滤器应用于 form_label(form.name),例如 'capitalize'?

标签 symfony twig

我的问题涉及在表单中应用 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/

相关文章:

php - Twig 中 Bundle 的相对路径

php - Symfony2 无法在错误页面中生成 url

Symfony 2 - 如何编辑单选按钮组

php - Symfony:如何从前过滤器(监听器)返回 JSON 响应?

forms - 如何在Symfony2中合并2表格

twig - 相当于 Twig 中的 is_array

symfony - 迭代并打印 Twig 中范围内的所有日期

javascript选择当前div

php - Symfony:遍历 json 对象到数组

symfony - 尝试在 Silex 2 中的类 "share"上调用方法 "Silex\Application"