我正在使用Symfony2设置表格,可以编辑货架实体。
书架包含一系列可读实体(例如书籍,杂志等 - 全部继承自Readable)
用户可以添加更多可读实体(表单通过JavaScript扩展),从下拉列表中他可以选择他想要添加的可读类型。根据所选的下拉列表值,将呈现不同的表单字段。到目前为止一切都很好。
现在,当表单提交到服务器时,根据表单中选择的用户的可读类型,应该实例化不同的实体类型。 如果我什么都不做,Symfony只是实例化基类Readable(而不是Book,Magazine等)。
如何根据下拉列表中的选定值告诉Symfony实例化正确的Readable类型?
我尝试使用FormEvent-Listeners,但是:
这样做的正确方法是什么?
修改
为Shelf FormType添加了最小代码示例:
https://gist.github.com/anonymous/401495b701982adafb96
infinite_form_polycollection代码:
https://gist.github.com/anonymous/b5f0ed10ca9c52177f01
答案 0 :(得分:0)
您是否尝试过查看this part of the doc?因为“嵌入表格”似乎符合您的需求。
答案 1 :(得分:0)
似乎供应商目录中的PolyCollection的PHP文件有问题,因为在从vendor-dir删除与无限表单捆绑包相关的所有内容并使用composer重新安装后,一切正常。但感谢你的努力YoannCh