Symfony 3使用FOSRestBundle形成实体集合

时间:2017-07-31 15:28:01

标签: php rest symfony fosrestbundle

我们正在使用FOSRestBundle。假设我想通过API使用以下JSON主体创建Ticket对象:

{
    "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

如果我想将一组实体分配给一个对象,表单构建器应该如何?

1 个答案:

答案 0 :(得分:0)

  

此表单不应包含额外字段

此错误表示表单结构在其创建和提交之间已更改。您是否使用AJAX请求动态修改DOM? 我想你应该看看here

对于空标记数组,您应该在症状小部件的定义中将 allow_add 选项设置为true 看看here

了解更多详情; - )