代码之家  ›  专栏  ›  技术社区  ›  Alan A

多文件上载验证消息问题

  •  0
  • Alan A  · 技术社区  · 6 年前

    CAKE3.6:

    我正在验证允许上载多个文件的表单域:

    $this->Form->input('listing_images. ', ['type' => 'file', 'multiple' => 'multiple']);
    

    我有一个自定义验证提供程序,可以正确验证多个图像:

    $validator ->add('listing_images', 'listing_images', [
          'rule' => [
               'dimensions', [
                    'min' => ['w' => 100, 'h' => 100],
                    'max' => ['w' => 1600, 'h' => 1600]
               ]
           ],
           'message' => 'Maximum image size is 1600 x 1600 pixels',
           'provider' => 'custom'
    ]);
    

    问题是,当验证失败时,验证错误不会出现在字段下面。如果使文件只上载单个文件且名称为“列出图像”,则会出现验证错误。

    为什么它不适用于多重?

    1 回复  |  直到 6 年前
        1
  •  1
  •   ndm    6 年前

    虽然它可能部分工作,但不支持您正在使用的尾随点语法(尾随空格只会使情况更糟),表单助手将无法基于该名称找到字段。

    你可以使用 name 选项指定多个文件上载HTML输入所需的带有尾括号的名称,同时传递表单帮助器理解的常规字段名:

    echo $this->Form->control('listing_images', [
        'type' => 'file',
        'name' => 'listing_images[]',
        'multiple' => 'multiple',
    ]);