我有几个从基地Widget
继承的实体。
在表单中,我有一个字段widgets
,它是一个集合。此表单基于一个实体,该实体与1:n
的关系Widget
。我想要做的是(基于widgets
中发送的数据)来创建一个特定的子类来验证和创建实际的对象。
在表格中我定义了这样的字段:
$builder->add('widgets', 'collection', array(
'type' => new WidgetType(),
'allow_add' => true
));
例如,我有两个子类ImageWidget
和MapWidget
。我为这两个实体创建了FormTypes
,现在客户端正在发送以下数据(我正在使用FOSRestBundle):
...
"widgets": [
{
"widget_type": "map",
"stationId": 543647
},
{
"widget_type": "image",
"image": "data:image/png;data,...."
}
]
基于属性widget_type
(这是Doctrine用来区分数据库中的窗口小部件类型的属性),我希望表单为第一个条目创建MapWidgetType
并且第二个ImageWidgetType
。
这可能吗?
我正在使用Symfony 2.5
答案 0 :(得分:1)