使用 Symfony DateType 禁用未来日期

Disable a future date using the Symfony DateType

我使用的是 Symfony 5,我的表单有问题。

当我将 DateType'widget' => 'single-text'js-datepicker 一起使用时,如何禁用将来的日期? 请注意,我无权访问前端,一切都必须在后端完成。 这是我目前拥有的:

$builder->add('date', DateType::class, [
            'widget' => 'single_text',
            'attr' => [
                'class' => 'js-datepicker'
            ]
        ]);

提前感谢您的回答!

如果您想使用 HTML5 验证,您可以使用 max 属性:

$builder->add('date', DateType::class, [
    'widget' => 'single_text',
    'attr' => [
        'class' => 'js-datepicker',
        'max' => date('Y-m-d')
    ]
]);

如果你想进行后端验证,你可以使用 Symfony Assert 你可以使用 LessThanLessThanOrEqual(如果你想包括今天的日期)

在您的实体中添加此导入:

use Symfony\Component\Validator\Constraints as Assert;

然后你可以使用 @Assert :

/**
 * @Assert\LessThan("today")
 */
private $date;