2

在 Symfony2 中,我使用的是 formbuilder。根据文档,我正在表单中设置标签。

但是,当我在“显示”和“索引”页面上时,我必须将标签复制到 Twig 中。

有没有办法在任何地方都使用相同的标签?我想到的选项:

  • 访问 formbuilder 配置,但不实际构建表单
  • 有一个中央配置文件,并从 formbuilder 和 twig 文件中查找该文件

然而,无论哪种方式都需要我“做”一些我在 Symfony 中不习惯的事情。似乎这是已经解决的问题,但我不确定如何解决。

4

1 回答 1

4

您可以利用翻译系统来克服这个问题。确保您已在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') }}

虽然这个过程有点长,但它是一次性的,您可以通过更改翻译文件来更改标签的值。

于 2012-05-24T15:03:07.887 回答