2015-05-09 5 views
0

У меня есть массив с сущностями. Я знаю, что у symfony есть collection type, но то, что я хочу, не работает должным образом. Я создал FormType для одного объекта и FormType для коллекции (код formtype для коллекции):Symfony 2.6: Collection as Form

$builder 
      ->add('list', 'collection', array(
       'label' => 'list', 
       'type' => new SingleItemType(), 
       'allow_add' => true, 
       'allow_delete' => true, 
       'by_reference' => false 
      )); 

Теперь я попытался создать форму

$arr = array(new Item(), new Item(), new Item()); 
$this->createForm(new CollectionListType(), $arr); 

Но это не Работа; Я получаю ошибку, которая означает, что я должен установить «Item» как data_class, если я это сделаю, появится еще одна ошибка, которая означает, что я должен установить для data_class значение null.

Другой подход заключался в создании фиктивного объекта, который содержит мой массив объектов Item, но это тоже не работает.

Есть ли простой подход для отображения списка сущностей в виде формы сбора?

Привет

+0

Вы пробовали эту запись в поваренной книге, [как вставлять коллекцию форм] (http://symfony.com/doc/current/cookbook/form/form_collections.html)? – Veve

ответ

0

Я не уверен, что полностью понимаю вашу проблему, но я думаю, что вы должны создать первый объект с GetList()/Setlist(). В поле вашей коллекции вы можете добавить новый объект «по умолчанию», передающий значение «data» в массиве параметров.

+0

Jep. Это единственный рабочий путь. Я надеялся, что я могу передать массив массиву в построитель форм, такой как array ('list' => array (new Item(), new Item() ..)); но появляются только странные ошибки. – user2429841

Смежные вопросы