Генератор администрирования доктрины Symfony 1.4 отображает поля формы i18n - PullRequest
2 голосов
/ 16 декабря 2010

Моя проблема в том, что я использую генератор администратора для модели с некоторыми дополнительными виртуальными атрибутами, которые мне нужно иметь в определениях 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, поэтому мне нужно иметь там определение.

Google тоже не помог ...

Кто-нибудь знает, как определить виджеты i18n в generator.yml?THX!

Ответы [ 2 ]

0 голосов
/ 22 мая 2011

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

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

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

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

И удачи !!!

0 голосов
/ 20 декабря 2010

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

...