Symfony 1.4 Администратор генератора unset поля - PullRequest
1 голос
/ 12 января 2011

Я использовал задачу "doctrine: generate-admin".Все работает, но я хочу использовать файл generator.yml для удаления некоторых полей формы, а не для их удаления в самом классе Form.Такие вещи, как «updated_at», мне нужно сохранять только при обновлении объекта, но я не хочу, чтобы они отображались на любых формах, и поэтому я не получу никаких ошибок проверки формы.

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

Ответы [ 3 ]

7 голосов
/ 12 января 2011

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

config:
  form:
    display:
      Content: [title, body, author]
      Admin:   [is_published, expires_at]

Странно, что вы не нашли его на странице ссылок. Вот вам: http://www.symfony -project.org / reference / 1_4 / ru / 06-Admin-Generator (перейдите к форме -> показать).

Edit:

Генератор администратора использует метод sfModelGeneratorConfiguration :: getFormFields () для получения списка полей для визуализации. Все поля будут заполнены, только если вы не укажете опцию «display».

Это все поля отображаются или только некоторые из них? Если это позже, чем у вас может быть что-то перегружено в вашей форме (например, метод configure ()).

2 голосов
/ 12 января 2011

попробуйте это:

config:
  list:
    hide: [created_at, updated_at]

http://www.symfony -project.org / ссылка / 1_4 / ен / 06-Admin-генератор # chapter_06_sub_hide

1 голос
/ 05 октября 2012

Помимо скрытия полей в config / generator.yml модуля администратора, как указано выше, вы должны сбросить их в соответствующей форме.Поэтому, если вы хотите скрыть поля made_at и updated_at модели Timestampable, измените метод configure () в lib / form / doctrine / ModelForm.class.php на

public function configure()
{
    unset($this['created_at'],$this['updated_at']);
}
...