-2

教区:

-----------------
|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);



            }
        );
4

1 回答 1

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) }}

看看你可以访问什么变量!

如果你想使用实体管理器发出 Doctrine 请求,你可以!您可以创建一个自定义 FormType,然后使用 attr 或其他在您的 twig 中传递此请求的结果。

希望它会有所帮助,最好的问候!

于 2019-06-01T08:28:21.847 回答