私はSymfony2でFOSRestBundleを使用してRESTサービスを提供しています。Symfony2 FOSRestBundleフォームに含まれるエンティティフィールドを返します
現在、私のコントローラは、リソースが要求されたときにエンティティを返します(例:/users/40
)。 フロントエンドには、このリソースを操作するためのフォームが含まれており、PUTを使用して返信します。コントローラは、フォームを使用してデータを処理します。
私の問題は、フォーム全体のエンティティ(id
とpassword_hash
が良い例です)よりフィールドが少ないことです。私は、エンティティ全体をクライアントに送ることは悪い考えであるという結論に達しました。代わりに、私はFOSRestBundleがフォーム内で利用可能なエンティティフィールドだけを送るようにします。
だから私はちょうど試してみました:
return $this->createForm(UserType::class, $entity);
FOSRestBundleにより、サーバから返されたJSONの構造は非常によさそうです。しかし残念ながら、それは値を含んでいません。
もちろん、フォームはバインドされていません。この時点では、データをバインドすることは意味がありません。したがって、私は別の解決策を見つける必要があります。
このユースケースは、私のアプリケーションで非常によく起こります。だから、これを達成するための簡単な標準的な方法がないのだろうかと思います。
(PS私は単にスコープにエンティティリソースJSONを取り付けると自動的にスコープの正しいオブジェクトにバインドされたフォームフィールドを生成するためにsymfonyのフォームテンプレートを使用する。フロントエンドの角度JSを使用)