首先是一点背景知识。我在过去了解到如何使用“纯”php,并且最近开始使用Symfony。我的许多问题一直在关注几本指南(Cookbook,Lynda和Openclassrooms),但我目前无法找到答案。
我有两个实体,我们将它们命名为User和Player。 User实体包含一个可以为null的Player属性。
因此,在用户创建期间,我想要3种可能性:将Player字段留空,选择已存在的播放器或创建新播放器。起初我想在播放器下拉列表中添加一个“创建新”选项,但只是选择了“创建新播放器”复选框。
我的想法是,如果选中该复选框,我想删除播放器下拉列表并添加嵌入表单以创建新播放器。我已经尝试了几个事件(PRE_SET_DATA,PRE_SUBMIT& co),但似乎没有根据用户输入触发。
这是我在JScript中所做的事情,但看看Symfony是一个与纯PHP不同的动物,我不知道该怎么做。任何帮助或建议将不胜感激!
答案 0 :(得分:0)
您在PRE_SET_DATA
和PRE_SUBMIT
次活动中走在正确的轨道上。
您需要使用JavaScript从服务器和Symfony表单事件重新加载表单以重建表单。
这是您正在寻找的文档:http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html
不幸的是,Symfony的表单组件非常复杂,所以没有简单的代码示例,您可以在不通过本文的情况下使用它。
同时阅读Form Events documentation有助于加深理解。