首页 > 解决方案 > Laravel 5 验证器在它应该失败时通过

问题描述

我在 Laravel 5.7 中验证一个数组,但是当我期望它失败时验证器通过了。

    $validator = Validator::make($request->all(), [

        'user_reg_email' => 'required|max:255|email|exists:users,email',
        'service_start_date' => 'required|before_or_equal:today',
        'service_end_date' => 'nullable|after:service_start_date',
        'role' => 'array|min:1|unique:provider_user,role,NULL,id,user_email,' . $request->user_reg_email . ',provider_domain,' . $request->prov,

    ]);

有效载荷如下:

    {

        _token: "d5VYhirRAn3Zb9bCKHKQiuLNXkHfEP4hEs0bAZvj",
        prov: "email.com",
        user_reg_email: "john@email.com",
        service_start_date: "2019-03-03",
        service_end_date: null,
        role: [
            null
        ],
    }

角色验证通过,但我预计它会失败。我如何获得预期的结果?

标签: arrayslaravelvalidation

解决方案


'role' => 'array,...'将验证该role字段是一个数组,它就是。

要验证数组中的项目您还需要包含以下规则:

'role.*' => unique:provider_user,...

推荐阅读