如何在 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'
])
;
使用 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'
])
;