2017-07-31 83 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

更多細節;-)