Динамически измененное поле формы (EntityType) с использованием событий формы отображается без текста - PullRequest
0 голосов
/ 15 апреля 2020

в моем виде у меня 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>

Что я делаю неправильно? Как это исправить?

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