Генератор администрирования доктрины Symfony 1.4 отображает поля формы i18n

Моя проблема в том, что я использую генератор администратора для модели с некоторыми дополнительными виртуальными атрибутами, которые мне нужно иметь в определениях generator.yml:

config:
  form:
    display: [name, design_by, description, _images, add_image, _videos, add_video]

Но атрибут "description" находится в режиме доктрины i18n, так как он больше не существует в объекте базовой модели - перенесен в модель i18n. Таким образом, я получаю логическую ошибку "Виджет" описание "не существует".

Я попробовал что-то вроде:

config:
  form:
    display: [description_i18n]

но не нашел решения.

Когда я обрезаю определение отображения формы по умолчанию, форма начинает работать, но мне не хватает моих дополнительных полей _images, add_image, _videos, add_video, поэтому мне нужно иметь там определение.

Гугл тоже не помог...

Кто-нибудь знает, как определить виджеты i18n в generator.yml? СПАСИБО!

2 ответа

Решение

У меня такая же проблема.

Погружаясь в код, я увидел, что виджеты i18n сгруппированы в массивы, где ключом является имя культуры.

Поэтому я попытался установить их в свой generator.yml:

form:
  display:
    'Name / Description (with translations)': [en, es, fr, it]

И удачи!!!

Я делал это раньше, и я не уверен, что это тот ответ, который вы ищете, но для того, чтобы Symfony отображал поля i18n в генераторе администратора, вам нужно добавить строку к каждому классу Form в папке вашего проекта /lib.

Например, если у вас есть класс Form в: <myproject>/lib/form/doctrine/MyForm.class.php

Добавьте это в метод configure следующим образом:

  public function configure()
  {
    parent::configure();

    // Add this line.
    $this->embedI18n(array('en', 'de'));
    ...
  }

Измените en и de на языки, которые вы установили. Вы должны сделать это для каждого имеющегося у вас объекта формы.

Другие вопросы по тегам