Symfony2 не рендерит коллекцию формы data-prototype - PullRequest
0 голосов
/ 26 февраля 2012

ОК, это довольно неловкая проблема.Я использую collection тип формы в Symfony, и после того, как я настрою его на

'prototype' => true,
'allow_add' => true

, я ожидаю, что он напечатает прототип, когда я вызову любой из них в шаблоне Twig:

form_rest(form)
form_widget(form.subform.get('prototype'))

Проблема в том, что Symfony печатает этот прототип только , если коллекция содержит хотя бы один элемент.

Это ошибка, о которой я не знаю, или я что-то упустил?

Любая идея будет принята с благодарностью!Спасибо!

Ответы [ 3 ]

2 голосов
/ 27 февраля 2012

Я обновил Symfony до последней стабильной версии, а прототип все еще ведет себя странно:

  • Если бы не существовало ни одного предмета, он бы вывел <div data-prototype="...."></div>
  • В противном случае прототип будет представлен как чистый HTML (а не как атрибут DIV выше)

Поскольку не существует готового решения, я был вынужден сделать IF - ELSE в моем JS. То есть JS сначала проверяет элемент data-prototype и возвращается к другому, если он не существует.

Как только у меня будет свободное время, я изучу это поведение и, если оно окажется нежелательным (как я подозреваю), сообщит об этом как об ошибке ...

0 голосов
/ 17 мая 2016

Если данные формы пусты, вы можете создать клон формы и заполнить его фиктивным объектом. Используйте этот клон для создания прототипа.

0 голосов
/ 26 февраля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...