в моем виде у меня 2 поля: город и школа. Я хочу динамически сузить список полевых школ после изменения списка городов. Я так и сделал:
$form
->add('town', ChoiceType::class, [
'label' => 'Miejscowość',
'placeholder' => 'Select city',
'choices' => $miejscowosci,
'required' => true,
'constraints' => [
new NotBlank(),
],
])
->add('school', EntityType::class, [
'class' => Placowka::class,
'label' => 'School',
'constraints' => [
new NotBlank(),
],
])
->addEventListener(
FormEvents::PRE_SUBMIT,
function (FormEvent $event) {
$selectedTown = $event->getData()['town'];
$event->getForm()
->add('school', EntityType::class, [
'query_builder' => function (EntityRepository $er) use ($selectedTown) {
return $er->createQueryBuilder('p')
->where('p.miejscowosc = :miejscowosc')
->setParameter('miejscowosc', $selectedTown);
},
]);
}
);
При запуске я вывел:
<select id="form_school" name="form[school]">
<option value="6415">School NR 1</option>
<option value="6416">School NR 2</option>
<option value="6417">School NR 3</option>
</select>
после изменения список школ города ограничен, но отображается так:
<select id="form_school" name="form[school]">
<option value="6415"></option> //there is no text
</select>
Что я делаю неправильно? Как это исправить?