Symfony2形成动态选择实体

时间:2013-11-22 15:09:15

标签: ajax forms symfony dynamic

我搜索了一会儿,但我什么都没找到。

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

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

好吧,我发现我可以管理事件监听器。

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

        var_dump($data->getCategory());
    });

好的,我可以获取所选类别并在加载子类别后,但我如何用ajax调用它?

希望你有任何例子......

1 个答案:

答案 0 :(得分:0)

响应并不那么简单......基本上,如果你想根据初始和&提交的值,您需要将事件侦听器附加到PRE_SET_DATA& PRE_SUBMIT事件。初始化表单时,将触发PRE_SET_DATA事件。在这里,您将在表单事件中接收您的对象作为数据,如果您没有提供,则将为null(不要忘记处理此情况)。通过第一部分,您将能够根据初始数据动态构建表单。

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

希望它有所帮助!