如何在 Laravel 中使用 exclude_if 验证数据字段?

How to validate a data field with exclude_if in Laravel?

我想验证 thumbnail 字段。当用户上传 mime 类型为 pdf 的文件时,需要缩略图。然后,如果用户上传 mime 类型不是 pdf 的照片。缩略图字段不是必需的。

这是我试过的代码:

  'file' => 'required|mimes:jpg,jpeg,pdf|max:2048',
  'thumbnail' => 'exclude_if:file,mimes:pdf|required'

我知道 thumbnail 上的验证不正确。谁能帮帮我?

所以如果 mime 类型是 pdf,你基本上需要缩略图,你可以使用 required_if 验证。 先加

use Illuminate\Validation\Rule;

然后,

Validator::make($request->all(), [
     'file' => 'required|mimes:jpg,jpeg,pdf|max:2048',
     'thumbnail' => Rule::requiredIf(function () use ($request) {
          if ($request->file->getMimeType() == 'application/pdf') {
                 return true;
           } else return false;
      }),
]);