有人可以帮助我吗,我有一张学生桌,我想确保用户输入从现在到3个月的日期范围。我试过这个,但它没有给我我想要的结果。考虑使用datediff,但不知道我会把它放在哪里。是否有另一种方法,如使用自定义验证来验证日期。
* @Assert\Range
* (
* min= "today", max="+3 months"
* )
Error message:
此值应为有效数字。
答案 0 :(得分:0)
您可以尝试在setter中进行验证。 像
这样的东西public function setEndDate($endDate)
{
if(your end date - your start date < 3){
$this->endDate= $endDate;
}else{
Throw whatever exepection you cant
}
return $this;
}
答案 1 :(得分:0)
@Assert\Callback(methods={"validatePayrollPeriod"})
public function validatePayrollPeriod(ExecutionContextInterface $context) {
$days = $this->startdate->diff($this->enddate)->days;
if ($days <= 7 || $days > 14) {
$context->buildViolation('Not a valid payroll period.')
->atPath('enddate')
->addViolation();
}
}