CakePHP 3验证器-无法在上传字段的“默认”提供程序中调用方法“”


CakePHP 3 validator - Unable to call method “” in “default” provider for upload field

这是我的验证程序,用于上传pdf文件的领域文章:

 $validator
->add('article', [
    'rule' => [
        'extension' => [
            ['article', 'pdf'],
            'message' => 'Only  pdf!'
        ]
    ]
])
->notEmpty('article');

这会产生一个错误:

无法在字段"article"的"默认"提供程序中调用的方法"

如何修复此问题以启用仅将pdf文件上载到现场文章?

代码中元素的顺序是错误的。

同样值得一看:API类验证-扩展

$validator
  ->add('article', [
    'extension' => [
      'rule' => [ 'extension', ['pdf'] ],
      'message' => 'Only PDF!'
    ]
  ])
  ->notEmpty('article', 'This field is required')
  ;

您还应该检查mimeType以增强安全性。工作原理类似,另请参阅书中条件验证

一章中的示例