Doctrine 2 エンティティの注釈を使用して作成したフォームがあります。(はい、遅いことはわかっています。それが私が学んだ方法であり、レガシーコードで使用しています。しかし、これはおそらくゼロから作成されたフォームに適用されるでしょう)
とにかく、これが状況です。エンティティには、名前、電子メール、性別など、ユーザーにとって非常に標準的なものがあります。また、「ロール」と呼ばれる一対多のプロパティもあります。そこで、AnnotationBuilder で作成したフォームを使用し、select 要素 (「roleId」という名前) を追加して、ユーザーがユーザーのロールを選択できるようにしました。そこから、フォームが検証されたら、roleId の値を取得し、対応するエンティティをデータベースから取得して、次に進み$user->setRole($role)
ます。
ここで困ってしまいます。を使用$form->bind($user)
し、$form->isValid()
次に を呼び出すと$form->getData()
、フォームからフィルタリングおよび検証されたデータの配列ではなく、ユーザー エンティティになります。
では、この状況をどのように処理すればよいでしょうか。エンティティにバインドされた後、フォームからフィルター処理および検証されたすべてのデータのフラットな配列を取得する方法はありますか?