Генератор администрирования доктрины 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 на языки, которые вы установили. Вы должны сделать это для каждого имеющегося у вас объекта формы.