Как создать Dynamic Drop в Symfony OneToMany Relationship? - PullRequest
0 голосов
/ 01 июня 2019

Епархия:

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

|1 |   DJ       | 
|2 |   Kpg      |

OneToMany

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 Ответ

0 голосов
/ 01 июня 2019

Вам не нужно использовать прослушиватель событий.Лучший способ - использовать «Пользовательскую форму» Symfony.

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

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

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

{{ dump(form) }}

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

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

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

...