symfony注释访问另一个字段

symfony注释访问另一个字段,symfony,symfony4,Symfony,Symfony4,我想在数据库中有一个“开始日期”和“结束日期”字段,但“开始日期”不能大于“结束日期”(逻辑上),但是否有任何方法可以使用实体进行比较(使用断言/约束),或者我必须在别处(和何处)进行比较 在这个例子中,我使用 /** * @ORM\Column(type="date") * @Assert\GreaterThanOrEqual("today") */ private $start_date; /** * @ORM\Column(type="date") */ private $en

我想在数据库中有一个“开始日期”和“结束日期”字段,但“开始日期”不能大于“结束日期”(逻辑上),但是否有任何方法可以使用实体进行比较(使用断言/约束),或者我必须在别处(和何处)进行比较

在这个例子中,我使用

/**
 * @ORM\Column(type="date")
 * @Assert\GreaterThanOrEqual("today")
 */
private $start_date;

/**
 * @ORM\Column(type="date")
 */
private $end_date;
在$end date时,是否可能以某种方式将@Assert\greater设置为大于$start\u date


我可以访问它吗?或者我需要为这种检查提供一些自定义函数,在Symfony中创建这种检查的最佳实践是什么?您需要为您的实体实现一个类约束验证器。在该验证器中,您可以将整个实体作为一个参数,然后可以像下面这样比较日期:

if ($value->getStartDate() > $value->getEndDate()) {
     $this->context->buildViolation($constraint->message)
            ->atPath('startDate')
            ->addViolation();
}