Как в Symfony2 получить метки из FormBuilder

В Symfony2 я использую конструктор форм. Я устанавливаю метки в форме, согласно документации.

Однако, когда я нахожусь на страницах «показать» и «индексировать», мне нужно скопировать метки в Twig.

Есть ли способ использовать одни и те же ярлыки везде? Варианты, которые я придумал:

  • Доступ к конфигурации построителя форм, но без фактического создания формы
  • Имейте центральный конфигурационный файл и выполняйте поиск из конструктора форм и файлов веток в этом файле.

Однако в любом случае от меня требуется что-то «сделать», к чему я не привык в Symfony. Кажется, это то, что уже было решено, но я не уверен, как это сделать.


person Dan Blows    schedule 24.05.2012    source источник


Ответы (1)


Вы можете использовать систему перевода, чтобы решить эту проблему. Убедитесь, что вы включили перевод в config.yml.

Если вы добавили поле в свой тип формы, как это

$builder->add('title', 'text', array(
    'label'=> 'model.title'
));
//.....

Создайте файл с именем messages.en.yml в каталоге пакетов Resources/translations (замените en локалью по умолчанию и создайте несколько файлов на основе локалей. Проверьте перевод главы книги.) и поставить следующий

#src/YourBundle/Resources/translation/messages.en.yml
model:
    title: "Title"
    field: "Field"
    #....

Ярлык форм добавления и редактирования будет отображаться Title. В индексе и показе страниц вы можете сделать

{{ "model.title" | trans([], 'messages') }}

Хотя этот процесс немного длительный, но это один раз, и вы можете изменить значение меток, изменив файлы перевода.

person Mun Mun Das    schedule 24.05.2012
comment
Я не думал об использовании системы перевода для этого. У этого также есть дополнительное преимущество быстрого i18n, если и когда это необходимо. Отличная идея, спасибо. - person Dan Blows; 24.05.2012