【问题标题】:CakePHP 3 validator - Unable to call method “” in “default” provider for upload fieldCakePHP 3 验证器 - 无法在上传字段的“默认”提供程序中调用方法“”
【发布时间】:2015-10-31 20:07:14
【问题描述】:

这是我应该上传 pdf 文件的字段文章的验证器:

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

这给出了一个错误:

“无法在“文章”字段的“默认”提供程序中调用方法“”

如何解决此问题以仅将 pdf 文件上传到外业文章?

【问题讨论】:

  • 应该是 ['article', 'pdf'] 而不是 ['pdf']
  • 没有必要删除您的original question 并创建一个副本。我仍然建议将您的代码与the examples in the docs 进行比较,差异应该非常明显。

标签: php cakephp cakephp-3.0


【解决方案1】:

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

还值得一看:API 类验证 - Extension

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

您还应该检查mimeType 以增强安全性。工作原理类似,另见本书conditional validation一章中的示例

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-28
    • 1970-01-01
    • 2011-01-14
    • 2017-02-14
    • 2022-01-08
    • 2020-11-08
    • 1970-01-01
    • 2018-09-20
    相关资源
    最近更新 更多