2017-07-31 78 views
1

我们使用的是FOSRestBundle。假设我想通过API来创建Ticket对象与以下JSON体:Symfony 3形式与FOSRestBundle实体的集合

{ 
    "title": "I need help", 
    "symptoms": [1, 4, 6] 
    "author": 31 
} 

作者和症状阵列在数据库中引用的主键。

我的表单建筑看起来像:

$builder->add('title', TextType::class); 
$builder->add('author', EntityType::class, [ 
    'class' => User::class 
]); 
$builder->add('symptoms', CollectionType::class, [ 
    'entry_type' => EntityType::class, 
    'entry_options' => [ 
     'class' => Symptom::class, 
    ], 
]); 

的问题是,titleauthor被正确地分配给票据对象但symptoms数组不转化为实体的集合。此外还有一个错误,即This form should not contain extra fields

如果我想将一个实体集合分配给一个对象,表单构建器应该是什么样子?

回答

0

这种形式不应该包含额外的字段

这个错误意味着形式结构的创建和提交之间变化。你是否在使用AJAX请求来动态修改DOM? 我想你应该看看here

对于标签的空数组,你应该设置allow_add选项设置为true在症状定义元件 看看here

更多细节;-)