我搜索了一会儿,但我什么都没找到。
我想用另一个选择创建一个动态选择。示例:
在我的表单中,我有两个链接到实体的字段(类别和子类别),当我在类别下拉列表中选择项目时,子类别中的项目将会更改。
好吧,我发现我可以管理事件监听器。
$builder->addEventListener(FormEvents::PRE_SET_DATA, function(FormEvent $event){
$form = $event->getForm();
$data = $event->getData();
var_dump($data->getCategory());
});
好的,我可以获取所选类别并在加载子类别后,但我如何用ajax调用它?
希望你有任何例子......
答案 0 :(得分:0)
响应并不那么简单......基本上,如果你想根据初始和&提交的值,您需要将事件侦听器附加到PRE_SET_DATA& PRE_SUBMIT事件。初始化表单时,将触发PRE_SET_DATA事件。在这里,您将在表单事件中接收您的对象作为数据,如果您没有提供,则将为null(不要忘记处理此情况)。通过第一部分,您将能够根据初始数据动态构建表单。
然后,当您处理表单时,如果提交表单,将触发PRE_SUBMIT事件。在这种情况下,您将获得所有提交数据的平面阵列。根据此数组,您可以根据提交的数据重建表单。这里的主要问题是数组是一个数组&不是你的模型对象。这意味着你不会有一个类别对象,而是他的视图表示(他的ID)......
希望它有所帮助!