如何在 Symfony 4 中创建自定义表单日期验证错误消息

How to create custom form date validation error messages in Symfony 4

使用 Symfony 4,我有一个带有日期字段的表单。 Safari (MacOS) 和 I.E.不支持 HTML5 日期选择器。当用户提交日期(不使用日期选择器)时,我希望错误消息显示为 "Please format your date yyyy-mm-dd" 而不是默认的 "This value is not valid."

这是我的表格class:

class MyType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('date', DateType::class, [
                    'widget' => 'single_text',
            ])
        ;
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
                'data_class' => MyEntity::class,
        ]);
    }
}

这是我的实体 class:

class MyEntity
{
   /**
     * @Assert\NotBlank()
     * @Assert\Date()
     */
    private $date;

    public function getDate()
    {
        return $this->date;
    }

    public function setDate($date)
    {
        $this->date = $date;
    }
}

我试过了:

/**
 * @Assert\NotBlank()
 * @Assert\Date(
 *      message="Please format your date yyyy-mm-dd."
 * )
 */
private $date;

我可以自定义 TextType 表单域的错误消息,但找不到 DateType 的任何示例。任何帮助,将不胜感激。谢谢

我认为您只需按照 documentation

中所述在您的字段上设置 invalid_message 参数

invalid_message

type: string default: This value is not valid

This is the validation error message that's used if the data entered into this field doesn't make sense (i.e. fails validation).

类似于

$builder
        ->add('date', DateType::class, [
                'widget' => 'single_text',
                'invalid_message' => 'Please format your date yyyy-mm-dd'
        ])
    ;