多文件验证:"This value should be of type string"
Multiple file validation: "This value should be of type string"
我正在尝试在文件上传表单上使用 Symfony Validator(表单扩展的验证),但收到此错误消息:
messageTemplate: "This value should be of type string." from Symfony\Component\Validator\ConstraintViolation
上传在没有验证器的情况下也能正常工作,我不知道这条消息是从哪里来的。
这是我的 FormType,以文档为例进行了基本验证:
{
$builder
->add('file', FileType::class, [
'label' => 'Choisir un fichier',
'mapped' => false,
'multiple' => true,
'constraints' => [
new File([
'maxSize' => '1024k',
'mimeTypes' => [
'application/pdf',
'application/x-pdf',
],
'mimeTypesMessage' => 'Please upload a valid PDF document',
])
],
])
;
}
如果我删除 maxSize
、mimeTypes
and/or mimeTypesMessage
参数,我仍然有同样的问题。
我无法在实体上使用注释(映射选项设置为 false
)。
错误是由于 File
约束需要一个文件名,但由于该字段具有选项 multiple
实际上正在接收一个数组。要解决它,您必须将约束包装在另一个 All
约束中,这会将内部约束(在本例中为 File
)应用于数组的每个元素。
您的代码应如下所示:
->add('file', FileType::class, [
'label' => 'Choisir un fichier',
'mapped' => false,
'multiple' => true,
'constraints' => [
new All([
'constraints' => [
new File([
'maxSize' => '1024k',
'mimeTypesMessage' => 'Please upload a valid PDF document',
'mimeTypes' => [
'application/pdf',
'application/x-pdf'
]
]),
],
]),
]
])
我正在尝试在文件上传表单上使用 Symfony Validator(表单扩展的验证),但收到此错误消息:
messageTemplate: "This value should be of type string." from Symfony\Component\Validator\ConstraintViolation
上传在没有验证器的情况下也能正常工作,我不知道这条消息是从哪里来的。
这是我的 FormType,以文档为例进行了基本验证:
{
$builder
->add('file', FileType::class, [
'label' => 'Choisir un fichier',
'mapped' => false,
'multiple' => true,
'constraints' => [
new File([
'maxSize' => '1024k',
'mimeTypes' => [
'application/pdf',
'application/x-pdf',
],
'mimeTypesMessage' => 'Please upload a valid PDF document',
])
],
])
;
}
如果我删除 maxSize
、mimeTypes
and/or mimeTypesMessage
参数,我仍然有同样的问题。
我无法在实体上使用注释(映射选项设置为 false
)。
错误是由于 File
约束需要一个文件名,但由于该字段具有选项 multiple
实际上正在接收一个数组。要解决它,您必须将约束包装在另一个 All
约束中,这会将内部约束(在本例中为 File
)应用于数组的每个元素。
您的代码应如下所示:
->add('file', FileType::class, [
'label' => 'Choisir un fichier',
'mapped' => false,
'multiple' => true,
'constraints' => [
new All([
'constraints' => [
new File([
'maxSize' => '1024k',
'mimeTypesMessage' => 'Please upload a valid PDF document',
'mimeTypes' => [
'application/pdf',
'application/x-pdf'
]
]),
],
]),
]
])