Я получил форму, включающую восемь 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' => ''],
])
[..]
Спросите меня, если ячто-то упустил.