Ajax Symfony2表单动态选择实体

Ajax Symfony2表单动态选择实体,ajax,forms,symfony,dynamic,Ajax,Forms,Symfony,Dynamic,我找了一会儿,但什么也没找到 我想用另一个选择创建一个动态选择。例如: 在我的表单中,有两个字段(类别和子类别)链接到一个实体,当我在“类别”下拉列表中选择一个项目时,子类别中的项目将更改 所以我发现我可以用一个事件监听器来管理 $builder->addEventListener(FormEvents::PRE_SET_DATA, function(FormEvent $event){ $form = $event->getForm(); $data

我找了一会儿,但什么也没找到

我想用另一个选择创建一个动态选择。例如:

在我的表单中,有两个字段(类别和子类别)链接到一个实体,当我在“类别”下拉列表中选择一个项目时,子类别中的项目将更改

所以我发现我可以用一个事件监听器来管理

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

        var_dump($data->getCategory());
    });
好的,我可以得到所选的类别,然后加载子类别,但是我如何用ajax调用它呢


希望你有任何例子…

回答不是那么简单。。。基本上,如果要根据initial&submitted值构建表单,需要将事件侦听器附加到PRE_SET_DATA&PRE_SUBMIT事件。初始化表单时,将触发PRE_SET_DATA事件。在这里,您将以事件的形式接收对象,如果不提供,则接收null(不要忘记处理这种情况)。使用第一部分,您将能够根据初始数据动态构建表单

然后,在处理表单时,如果表单已提交,则会触发PRE_SUBMIT事件。在这种情况下,您将看到一个平面数组,它将删除所有提交的数据。根据此数组,您可以根据提交的数据重建表单。这里的主要问题是数组是数组&而不是模型对象。这意味着您将没有类别对象,但有他的视图表示(他的ID)

希望有帮助