Как заполнить Smyfony CollectionType с помощью N форм на основе строк базы данных - PullRequest
0 голосов
/ 05 марта 2019

У меня есть CollectionType типа формы EditAnnouncementType, который я создал.Этот CollectionType будет использоваться для визуализации формы, предназначенной для обработки пользователем, редактирующего некоторый текст объявления, где каждое объявление имеет собственный открываемый модал редактирования (модалы имеют уникальные идентификаторы)

$editForm = $this->createFormBuilder()
        ->add('editForms', CollectionType::class,
            [
                'entry_type' => EditAnnouncementType::class,
                'allow_add' => true,
                'prototype' => true,
                'by_reference' => false,
                'required' => false,
        ])
        ->add('edit', SubmitType::class,
            array
            (
                'label' => 'Save changes',
                'attr' => ['class' => 'btn btn-primary']
            ))
        ->setData($this->getDoctrine()->getRepository(Announcement::class)->findAll())
        ->getForm()
        ;

Как мне предварительно заполнитьN количество форм, основанное на N количестве строк (или N сущностей объявлений)

код типа формы

class EditAnnouncementType extends AbstractType

{/ ** * @param FormBuilderInterface $ builder * @param array $ options* / public function buildForm (FormBuilderInterface $ builder, array $ options) {$ builder -> add ('edit', SubmitType :: class, array ('label' => 'Сохранить изменения', 'attr' => ['class)'=>' btn btn-primary '])) -> add (' id ', HiddenType :: class, []);}

/**
 * Returns the name of this type.
 *
 * @return string
 */
public function getName()
{
    return 'edit_announcement';
}

}

1 Ответ

0 голосов
/ 05 марта 2019

Попробуйте с этим

$editForm = $this->createFormBuilder()
        ->add('editForms', CollectionType::class,
            [
                'entry_type' => EditAnnouncementType::class,
                'allow_add' => true,
                'prototype' => true,
                'by_reference' => false,
                'required' => false,
        ])
        ->add('edit', SubmitType::class,
            array
            (
                'label' => 'Save changes',
                'attr' => ['class' => 'btn btn-primary']
            ))
        ->setData(['editForms' => $this->getDoctrine()->getRepository(Announcement::class)->findAll()])
        ->getForm()
        ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...