Symfony 2表单 - 日期小部件和验证器

时间:2015-06-07 16:02:46

标签: php validation symfony

我有现场生日:

/**
 * @ORM\Column(type="date", nullable=true)
 */
protected $birthday;

和表格:

->add('birthday', null, array('widget' => 'single_text', 'format' => 'dd-MM-yyyy'))

如果值不正确,如何更改此消息?

我尝试实体:

public static function loadValidatorMetadata(ClassMetadata $metadata)
    {
        $metadata->addPropertyConstraint('birthday', new Assert\Date(array('message' => 'test')));
    }

但是没有使用这个验证器...... 那么验证器在哪里呢?

1 个答案:

答案 0 :(得分:0)

好像是DateValidator::validate问题:

在进行任何验证之前,该方法包含以下检查:

if (null === $value || '' === $value || $value instanceof \DateTime) {
        return;
}

使用single_text选项时,$ value参数的类型为\ DateTime事件。

可能的解决方法是在表单级别更改错误消息:

$form->add('fieldName', 'date', [
            'widget' => 'single_text',
            'format' => 'dd-MM-yyyy',
            'invalid_message' => 'your message'
        ])

希望这有帮助。