4
我有一个模型,如下所述:如何处理Symfony2表单EntityChoiceList中的“其他”选项?
我也得到了一个表单创建一个新的产品,建立一个包含所有品牌的下拉列表字段entity
。
现在我想在此列表中添加一个“Other”值,以便用户在另一个文本字段中手动指定品牌。
问题是:是否有一种干净的方式来管理这种情况(例如,添加值“Other”在列表中,这不是一个实体,并得到表单验证工作)与Symfony2形式?
感谢您的回复。我也在寻找表单事件,你的第一个解决方案在理论上看起来很棒。问题是,在这种情况下,我必须为每个表单坚持一个新的Brand对象,并最终在以后删除它。最后,我不认为这是更好的解决方案。我将看看Data Transformer。 :) –
那么'FormEvents :: BIND_CLIENT_DATA'事件监听器对提交的数据进行操作。在任何数据映射发生之前。您可以检查字段值是否为数字。如果没有,那么你可以保存实体并将其ID设置为提交的数据。 –
我想你不明白我的问题。我编辑它更容易理解。我想从字面上将值“Other”添加到列表中,这不是一个实体,我不希望它被持久化。我已经想出了如何动态地添加一个新的品牌与集合和“allow_add”选项(顺便说一句,FormEvents :: BIND_CLIENT_DATA已弃用2.1以来,你应该使用PRE_BIND代替。请参阅http://bit.ly/JMYXih )。我的问题是我不知道如何处理列表中的“非实体”值,以及在表单返回时如何验证它。尽管如此,感谢您的反馈。 :) –