一方向の多対 1 の関係にある 2 つのエンティティ クラスと、独自のフォーム タイプを使用してそれぞれの作成、フェッチ、更新、および削除を処理する 2 つの fos レスト コントローラーがあります (ここで説明)。
関連(トピック)の「多」側に新しいエンティティを作成するときに、「一」側(カテゴリ)の既存のエンティティとリンクしたい。Topic のフォーム タイプは次のようになります。
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('category', 'entity', array('class' => 'MyNiceBundle:Category', 'property' => 'id'))
;
}
しかし、フォームの投稿リクエストは受け付けません
{"my_form":{"category":{"id":2, "aProperty":"bla"}}}
また
{"my_form":{"category":{"id":2}}}
私が得るエラーは "category":{"errors":["This value is not valid."]}}
結局、私は送信することを知りました
{"my_form":{"category":2}}
実際に働いた。しかし、GET を使用してトピックを取得すると、少し面倒です。
{"id":1, "category":{"id":2, "aProperty":"bla"}}
そしてそうではない
{"id":1, "category":2}
そのため、PUT で更新を行う前に、カテゴリ プロパティをその ID で上書きする必要があります...
これを行うためのより良い方法があると確信しています。何かアドバイス?