繁体   English   中英

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

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

使用Symfony 4,我有一个带有日期字段的表单。 Safari(MacOS)和IE不支持HTML5日期选择器。 当用户提交日期(不使用日期选择器)时,我希望错误消息显示为“请格式化日期yyyy-mm-dd”,而不是默认的“此值无效”。

这是我的表单类:

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 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的任何示例。 任何帮助,将不胜感激。 谢谢。

我认为您只需按照文档中所述在字段上设置invalid_message参数即可

invalid_message

类型:字符串默认值:此值无效

如果在此字段中输入的数据没有意义(即验证失败),则使用此验证错误消息。

就像

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM