Symfony 3.4 CollectionType Редактировать форму - PullRequest
0 голосов
/ 03 декабря 2018

Я получил форму, включающую восемь CollectionType, как simpleArray.

Я должен создать страницу, которая редактирует сущность и отображает таблицу с входными данными формы.

Это то, что я сделал

{% for items in form.floor.vars.value %}
<tr>
    <td></td>
    <td>
        {{ form_widget(form.floor, ['data',form.floor.vars.value[i]]) }}
    </td>
    <td>
        {{ form_widget(form.ambient, ['placeholder', form.ambient.vars.value[i]]) }}
    </td>
    <td style="min-width:270px;">
        {{ form_widget(form.name) }}
    </td>
    <td style="min-width:150px;">
        {{ form_widget(form.pp, ['data', form.pp.vars.value[i]]) }}
    </td>
    <td style="min-width:150px;">
        {{ form_widget(form.pl) }}
    </td>
    <td style="min-width:150px;">
        {{ form_widget(form.pt) }}
    </td>
    <td style="min-width:150px;">
        {{ form_widget(form.c1v) }}
    </td>
    <td style="min-width:150px;">
        {{ form_widget(form.c2v) }}
    </td>
</tr>
{% endfor %}

Это отрисовывает один <td> со всеми входами формы внутри, я должен визуализировать блок <td> для каждого элемента в массиве (значения в объекте получили формат 1,4,2,6,8,4каждое из них получило одинаковое количество значений, поэтому я использую первый элемент, который получил значения в цикле for.

Другая проблема, которую я получил, состоит в том, что поле ambient является раскрывающимся (CollectionType сEntityType внутри), я пытался передать значение как data или как placeholder, но у меня нет данных, только первый элемент в списке, заданный EntityType.

$expertations = $this->getDoctrine()->getRepository(Expertations::class)->find($id);
[..]
 ->add('ambient', CollectionType::class, [
            'entry_type' => EntityType::class,
            'entry_options' => [
                'class' => 'AppBundle:Rooms',
                'query_builder' => function (EntityRepository $er) {
                    return $er->createQueryBuilder('u')
                        ->orderBy('u.name')->distinct()
                        ;},
                'label' => false,
                'choice_label' => 'name',
                'choice_value' => 'id',
            ],
            'label' => false,
            'attr' => ['class' => ''],

        ])
[..]

Спросите меня, если ячто-то упустил.

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