複雑な要件を満たすエンティティのリストから選択されたエンティティである field を持つエンティティがSymfony2にあるとします。エンティティ フィールド タイプであることを指定することで、このフィールドをフォームに表示できます。つまり、次のようになります。bestfriendUserUser
$builder->add('bestfriend', 'entity', array(
'class' => 'AcmeHelloBundle:User',
'property' => 'username',
));
このフォーム フィールドは としてレンダリングされ、 <select>表示される各値は次の形式になります。
<option value="user_id">user_username</option>
したがって、<optgroup>タグを使用してフィールドをレンダリングし、友人のそのような特別な機能を強調します。
この原則に従って、次のようにレンダリングされるこの回答FriendTypeのように選択肢の配列を作成するフィールドタイプ、つまりを作成しました。
$builder->add('bestfriend', new FriendType(...));
FriendTypeクラスは<select>、同じ で編成された を作成しますが、の<option>下に編成され<optgroup>ます。
ここで私は問題に来ました!フォームを送信すると、フレームワークは user フィールドが User のインスタンスではなく、整数であることを認識します。渡された int がタイプ User のエンティティの ID であることを Symfony2 に理解させるにはどうすればよいですか?