我有一个包含两个人的 Duo 实体。在创建过程中,创建者提交邮箱地址合作伙伴,并决定他是否是新 Duo 的队长。如果他决定不是(他选择担任助手),那么第二个人会自动被指定为队长。我的 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 实体有效。我不想使用没有实体的表单,因为我不想手动分配数据并处理表单之外的错误。另外,我想验证两个用户中的一个是否没有参与另一个 Duo。如果是,如何以干净的方式将错误消息传递给表单。
我应该怎么办?有没有办法使用表单回调或事件或类似的东西来做到这一点?