2 人の人物を含む Duo エンティティがあります。作成中、作成者は電子メール アドレス パートナーを送信し、新しいデュオのキャプテンであるかどうかを決定します。彼がそうでないと判断した場合 (アシスタントになることを選択した場合)、自動的に 2 番目の人がキャプテンに割り当てられます。私の Duo エンティティは次のとおりです。
/**
* @ORM\Table()
* @ORM\Entity()
*/
class Duo{
/**
* @Assert\NotNull()
* @ORM\OneToOne(targetEntity="User")
* @ORM\JoinColumn(name="captain_id", referencedColumnName="id")
*/
private $captain;
/**
* @Assert\NotNull()
* @ORM\OneToOne(targetEntity="User")
* @ORM\JoinColumn(name="assistant_id", referencedColumnName="id")
*/
private $assistant;
パートナーを指定して送信される電子メール アドレスだけが存在するように、フォームをどのように整理すればよいでしょうか。を呼び出すときに$form->isValid()
、Duo エンティティを有効にしたいと考えています。手動でデータを割り当てたり、フォーム外でエラーを処理したりしたくないので、エンティティのないフォームを使用したくありません。また、2 人のユーザーのうちの 1 人が別の Duo に関与していないかどうかを確認したいと思います。はいの場合、エラーメッセージをフォームにきれいな方法で渡す方法。
私は何をすべきか?フォーム コールバックやイベントなどを使用してそれを行う方法はありますか?