如何在Symfony2表单中处理EntityChoiceList中的“other”选项?

我有一个如下所述的模型:

我还有一个表单来创建一个新产品,其中一个字段实体构建一个包含所有品牌的下拉列表.

现在,我想在此列表中添加值“Other”,以允许用户在另一个文本字段中手动指定Brand.

问题是:是否有一种干净的方法来管理这种情况(例如,在列表中添加值“Other”,这不是一个实体,并使用Symfony2表单进行表单验证)?

最佳答案 你可以用两种方式做到,

>您可以订阅FormEvents :: BIND_CLIENT_DATA表单事件.在事件方法中,您可以从文本创建新的Brand对象,保存它并通过调用$event-> setData($data)将id设置为表单.请参阅this食谱条目.

要么

>您可以附加数据转换器.在reverseTransform方法中,您可以创建保存对象并返回其id.见this食谱入门.

点赞