Laravel “验证”;或;条件

Laravel “验证”;或;条件,laravel,laravel-5,laravel-5.3,Laravel,Laravel 5,Laravel 5.3,我希望能够检查上传的文件是图像还是MIME类型的文件video/mp4(mp4 video)。但是,我不确定如何执行此操作,因为它需要验证中的“或”条件 现在,我只有图像检查: $validator = Validator::make(array('fileUpload' => $fileUpload), [ 'fileUpload' => 'required|image', ]); 如何添加“或”条件以同时检查文件是否具有MIME类型video/mp4?您可以编写自己的验

我希望能够检查上传的文件是图像还是MIME类型的文件
video/mp4
(mp4 video)。但是,我不确定如何执行此操作,因为它需要验证中的“或”条件

现在,我只有图像检查:

$validator = Validator::make(array('fileUpload' => $fileUpload), [
    'fileUpload' => 'required|image',
]);

如何添加“或”条件以同时检查文件是否具有MIME类型
video/mp4

您可以编写自己的验证规则来执行此操作:

你的可能看起来像这样:

Validator::extend('img_or_mp4', function ($attribute, $value, $parameters, $validator) {
    return X; // Check the data in $value to see if it's an image or mp4
});
那么您的规则将是:

    'fileUpload' => 'required|img_or_mp4',
您也可以使用或:


这难道不意味着在这个自定义验证规则中重写
图像
验证规则吗?这意味着你不会使用
图像
,而是会编写你自己的逻辑,执行与
图像
类似的操作,并允许mp4。
$validator = Validator::make(
    ['fileUpload' => $fileUpload],
    ['fileUpload' => 'required|mimetypes:image/jpeg,image/bmp,image/png,video/mp4']
);