教区:
-----------------
|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);
}
);
答案 0 :(得分:0)
您不需要使用任何事件侦听器。最好的方法是使用Symfony的“自定义表单”。
查看文档:
https://symfony.com/doc/current/form/create_custom_field_type.html https://symfony.com/doc/current/form/form_customization.html
您必须为教区创建一个“选择类型”并自定义字段(如上面的第一个链接)。在您的树枝中(默认情况下为文件“ ... / fields.html.twig”),制作一个
{{ dump(form) }}
查看可以访问的变量!
如果要使用实体管理器发出“学说”请求,可以!您可以创建一个自定义FormType,然后使用attr或其他方法在树枝中传递此请求的结果。
希望这会有所帮助, 最好的问候!