Как удалить лишние группы полей визуализации? - PullRequest
0 голосов
/ 29 января 2019

Я использую CollectionType для визуализации нескольких экземпляров класса в моей форме.Но после визуализации полей ввода отображается лишняя информация.

Вот так: (Так как для публикации изображений мне нужно не менее 10 репутаций, я могу опубликовать только IMGUR-ссылку)

https://i.imgur.com/WXPnCxo.png

Контроллер:

$leadPartnerList = $LeadPartnerLoader->loadAll();
        $formBuilderData = [
            'lead_partners' => $leadPartnerList
        ];

        $form = $this->createFormBuilder($formBuilderData)
            ->add('lead_partners', CollectionType::class, [
                'entry_type' => LeadPartnerFormType::class,
                'entry_options' => [
                    'label' => null
                ]
            ])->getForm();

        $form->handleRequest($request);

        if($form->isSubmitted() && $form->isValid())
        {
            $data = $form->getData();
            dump($data);
        }

        return $this->render(
            'lead_partner_overview2.html.twig',
            [
                'form' => $form->createView()
            ]);

LeadPartnerFormType:

class LeadPartnerFormType extends AbstractType
{
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => LeadPartner::class,
        ));
    }

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('id', HiddenType::class)
            ->add('name', TextType::class);
    }
}

Шаблон Twig:

<div>

        {{ form_start(form) }}
        {% for partner in form.lead_partners %}
            {{ form_row(partner.name) }}
        {% endfor %}
        {{ form_end(form) }}

    </div>

Как удалить этолишние вещи ниже полей ввода?Я немного растерялся с этим. (Полагаю, он как-то связан с индексами массивов предоставленных данных?)

С уважением

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Благодаря ответу Бенджамина Козловского, я посмотрел вверх form_rest(...):

Изменение шаблона на

 {{ form_start(form) }}
        {% for partner in form.lead_partners %}
            {{ form_row(partner.id) }}
            {{ form_row(partner.name) }}
        {% endfor %}
        {{ form_end(form) }}

решает проблему, потому что я забыл отобразить скрытые поля idтаким образом form_rest() отображает их с меткой (в любом случае).

0 голосов
/ 29 января 2019

Попробуйте заменить {{ form_end(form) }} на {{ form_end(form, {'render_rest': false}) }}

...