在 Symfony2 中,我使用的是 formbuilder。根据文档,我正在表单中设置标签。
但是,当我在“显示”和“索引”页面上时,我必须将标签复制到 Twig 中。
有没有办法在任何地方都使用相同的标签?我想到的选项:
- 访问 formbuilder 配置,但不实际构建表单
- 有一个中央配置文件,并从 formbuilder 和 twig 文件中查找该文件
然而,无论哪种方式都需要我“做”一些我在 Symfony 中不习惯的事情。似乎这是已经解决的问题,但我不确定如何解决。
在 Symfony2 中,我使用的是 formbuilder。根据文档,我正在表单中设置标签。
但是,当我在“显示”和“索引”页面上时,我必须将标签复制到 Twig 中。
有没有办法在任何地方都使用相同的标签?我想到的选项:
然而,无论哪种方式都需要我“做”一些我在 Symfony 中不习惯的事情。似乎这是已经解决的问题,但我不确定如何解决。
您可以利用翻译系统来克服这个问题。确保您已在config.yml
.
如果您在表单类型中添加了这样的字段
$builder->add('title', 'text', array(
'label'=> 'model.title'
));
//.....
messages.en.yml
在您的 bundles 目录中创建一个名为的文件Resources/translations
(替换en
为您的默认语言环境并根据语言环境创建多个文件。检查本书的翻译章节。)并输入以下内容
#src/YourBundle/Resources/translation/messages.en.yml
model:
title: "Title"
field: "Field"
#....
添加和编辑表单标签将显示Title
。在索引和显示页面中,您可以执行
{{ "model.title" | trans([], 'messages') }}
虽然这个过程有点长,但它是一次性的,您可以通过更改翻译文件来更改标签的值。