首页 > 解决方案 > Laravel Validator - 在检查其他规则后检查自定义验证规则

问题描述

你好吗?希望你过得很好

我需要一个帮助Laravel Validator,我创建了一个自定义验证规则,如下所示

$validation = Validator::make($request->all(), [
            'user_id' => 'required',
            'role' => ['required', new RoleExist($request->user_id)],
        ]);

看到我已经将一个参数传递给规则的构造函数,但是如果我没有传递请求new RoleExist($request->user_id),laravel 会给我错误500user_id

错误是

Argument 1 passed to App\Rules\RoleExist::__construct() must be of the type integer, null given

我知道 user_id 没有在请求中传递,所以 laravel 给出了上述错误,但这里我的自定义规则应该在之后执行'user_id' => 'required',

自定义规则代码

private $userId;
public function __construct(Int $userId)
{
    $this->userId= $userId;
}

public function passes($attribute, $value)
{
   return empty(\App\User::where('user_id', $this->userId)->where('status', '1')->first());
}

有没有办法做同样的事情

先感谢您

标签: laravellaravel-validation

解决方案


推荐阅读