preloader

Comment valider deux dates lié...

Comment valider deux dates liées avec symfony 5?

Pour valider qu'une date doit être antérieure à une autre date avec symfony on peut utiliser la contrainte de comparaison GreaterThan(ou LessThan selon les cas).


// src/Entity/Foo.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Foo
{
   
 /**
     * @var \DateTimeInterface
     * @Assert\NotBlank()
     * @Assert\Type("\DateTimeInterface")
     */
    private  $startDate;

    /**
     * @var \DateTimeInterface
     * @Assert\NotBlank()
     * @Assert\Type("\DateTimeInterface")
     * @Assert\GreaterThan(propertyPath="startDate")
     */
    private $endDate;
}

A noter que l'optionpropertyPath de GreaterThan définit l'attribut de la classe dont la valeur est utilisée pour servir de comparaison. Dans notre cas l'attribut est startDate

https://symfony.com/doc/current/reference/constraints.html