【发布时间】:2016-05-28 01:12:13
【问题描述】:
我无法验证 pdf 附件(多),laravel 5.2。验证规则是这样的:
namespace App\Http\Requests;
class UploadRequest extends Request
{
public function rules()
{
return [
'attachments'=> 'required|mimes:pdf',
];
}
}
或
namespace App\Http\Requests;
class UploadRequest extends Request
{
public function rules()
{
return [
'attachments'=> 'required|mimetypes:application/pdf',
];
}
}
我正在按照documentation 中的建议进行操作。它使所有附件类型无效。
编辑
当我解决这个问题时,我必须添加自定义验证方法
namespace App\Http\Requests;
use Illuminate\Validation\Factory as ValidationFactory;
class UploadRequest extends Request
{
public function __construct(ValidationFactory $validationFactory)
{
$validationFactory->extend(
'pdf',
function ($attribute, $files, $parameters) {
if(is_array($files)){
foreach($files as $file){
if($file->getMimeType()!='application/pdf'){
return false ;
}
}
}else
return $files->getMimeType()=='application/pdf';
return true;
},
'File is not a pdf document'
);
}
public function rules()
{
return [
'attachments'=> 'required|pdf',
];
}
}
【问题讨论】:
-
规则没有错,你一定是在代码的更高层做错了什么。
-
@fire 你可能是对的 :)
标签: php laravel laravel-5.2