Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony2-使用用户输入动态修改表单_Symfony - Fatal编程技术网

Symfony2-使用用户输入动态修改表单

Symfony2-使用用户输入动态修改表单,symfony,Symfony,先讲一点背景知识。我过去学习过如何使用“纯”php,最近开始使用Symfony。我一直在遵循几本指南(Cookbook、Lynda和OpenQuestions)进行我的许多询问,但我还没有找到我当前问题的答案 我有两个实体,让我们把它们命名为User和Player。用户实体包含一个播放器属性,该属性可以为null 因此,在用户创建过程中,我希望有3种可能性:将Player字段留空,选择一个已经存在的播放器,或者创建一个新的播放器。起初,我想在播放器下拉列表中添加一个“创建新播放器”选项,但只是选

先讲一点背景知识。我过去学习过如何使用“纯”php,最近开始使用Symfony。我一直在遵循几本指南(Cookbook、Lynda和OpenQuestions)进行我的许多询问,但我还没有找到我当前问题的答案

我有两个实体,让我们把它们命名为User和Player。用户实体包含一个播放器属性,该属性可以为null

因此,在用户创建过程中,我希望有3种可能性:将Player字段留空,选择一个已经存在的播放器,或者创建一个新的播放器。起初,我想在播放器下拉列表中添加一个“创建新播放器”选项,但只是选择了一个“创建新播放器”复选框

这个想法是,如果复选框被选中,我想删除播放器下拉列表,并添加一个嵌入式表单来创建一个新的播放器。我尝试了几个事件(PRE_SET_DATA、PRE_SUBMIT&co),但似乎都没有根据用户输入触发


这是我在JScript中应该做的事情,但是看到Symfony与纯php有多么大的不同,我不知道该怎么做。任何帮助或建议都将不胜感激

通过
PRE\u SET\u DATA
PRE\u SUBMIT
事件,您已经走上了正确的轨道

您需要使用JavaScript从服务器重新加载表单,并使用Symfony表单事件重新生成表单

这是您要查找的文档:

不幸的是,Symfony的表单组件相当复杂,因此没有简单的代码示例可以在不阅读本文的情况下使用


阅读也有助于加深理解。

您使用
PRE\u SET\u DATA
PRE\u SUBMIT
事件的方法是正确的

您需要使用JavaScript从服务器重新加载表单,并使用Symfony表单事件重新生成表单

这是您要查找的文档:

不幸的是,Symfony的表单组件相当复杂,因此没有简单的代码示例可以在不阅读本文的情况下使用


阅读也有助于加深理解。

谢谢您的回答。我记得读过那部分,但我跳过了它,因为我不(现在仍然不)理解订阅PRE_SET_数据和PRE_SUBMIT事件的意义。谢谢你的回答。我记得读过那部分,但我跳过了它,因为我不(现在仍然不)理解订阅PRE_SET_数据和PRE_SUBMIT事件的意义。