preloader

Utiliser une contraintre de co...

Utiliser une contraintre de comparaison pour valider une date dans le futur ou dans le passé avec Syfmony

Pour valider une date dans le futur avec symfony on peut utiliser une contrainte de comparaison GreaterThan .


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

use Symfony\Component\Validator\Constraints as Assert;

class Event
{
    /**
     * @Assert\GreaterThan("today")
     */
    private $start;
}

La contrainte GreaterThan accepte les dates relatives de PHP comme : yesterday, number, last day of next month, ... ) .

L'exemple suivant impose à l'utilisateur de choisir une date dans les 10 suivants la date d'aujourd'hui. Nous somes le 23 avril 2021, toute date date antérieure au 4 mai sera invalide.


// src/Entity/Event.php
/**
 * Assert\GreaterThan("+10 days")
 */
    private $start;
}

LessThan('today') permet de valider une date dans le passé. Outre les dates ces contraintes de comparaison permet également de comparer les nombres.

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