Как создать 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 или другого.
Надеюсь, это поможет, С уважением!