Как создать Dynamic Drop в Symfony OneToMany Relationship?

Епархия :

-----------------
|id|diocese_name|
-----------------

|1 |   DJ       | 
|2 |   Kpg      |

Один ко многим

Parish:
---------------------------
|id|diocese_id|parish_name|
---------------------------
|1 |    1     |St. Jude   |
|2 |    1     |St. Mark   |
|3 |    2     |St. Peter  |
|4 |    2     |St. thomas | 

Я хочу сделать динамический выпадающий: когда пользователь нажимает на имя епархии, он должен отображать имя прихода.

Я пытался с Form Event, но я не мог следить за документацией. Вот кодекс.

        $builder
        ->add('diocese_name', EntityType::class,[

            'class' => 'App\Entity\Diocese',
            'choice_label' => 'diocese_name'
        ])
    ;

    $builder
        ->addEventListener(

            FormEvents::PRE_SET_DATA,
            function(FormEvent $event){
                $form = $event->getForm();
                $data = $event->getData();

                $parish = $data->getParish();

                dump($parish);



            }
        );

1 ответ

Вам не нужно использовать прослушиватель событий. Лучше всего использовать "Custom Form" Symfony.

Посмотрите документацию:

https://symfony.com/doc/current/form/create_custom_field_type.htmlhttps://symfony.com/doc/current/form/form_customization.html

Вы должны создать "тип выбора" для своей епархии и настроить поле (как в первой ссылке выше). В своей ветке (по умолчанию это файл: '.../fields.html.twig') сделайте

{{ dump(form) }}

чтобы увидеть, к какой переменной вы можете получить доступ!

Если вы хотите использовать диспетчер сущностей для выполнения запроса Doctrine, вы можете! Вы можете создать собственный FormType, а затем передать результат этого запроса в свою ветку с помощью attr или другого.

Надеюсь, это поможет, С уважением!

Другие вопросы по тегам