Laravel 在 null 时调用成员函数 validate()

Laravel Call to a member function validate() on null

我在 Laravel 授权注册时收到此错误

Call to a member function validate() on null

错误仅在验证通过时发生,当验证失败时,它会向注册视图显示 returns 并显示正确的错误。 我在 if 失败后尝试 dd 但它没有到达它:

protected function validator(array $data){
        $req = new Request($data);
        //dd($req,$data);
        $this->validate($req,
            [
                'name' => ['required', 'string', 'max:50','min:3'],
                'email' => ['required','email', 'unique:users'],
                'password' => ['required', 'min:8', 'confirmed'],
                'uni' => ['required'],
                'city' => ['required'],
            ],[
                'required' => 'هذا الحقل مطلوب',
                'email'=>'نمط البريد الالكتروني غير صحيح',
                'min'=>'يجب إدخال 8 حروف عالأقل',
                'email.unique' => 'هذا البريد الالكتروني مستخدم',
                'confirmed'=>'الرجاء التأكد من كلمة المرور',
                'max'=>'50 حرف هو أقصى حد يمكن إدخاله',
                'name.min'=>'الاسم قصير جدا',

            ]);
    }
    protected function create(array $data){
        if ($this->validator($data)->fails()) {
            return Redirect::back()->withErrors($this->validator($data))
                ->withInput();
        }
        return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
            'photo'=>'img/user.jfif',
            'university'=>$data['uni'],
            'city'=>$data['city'],
        ]);
    }

RegisterController完整代码 https://pastebin.com/B8XcNbBR
和 RegistersUsers(其中堆栈跟踪显示错误) https://pastebin.com/BBTTStLL

试试这个

protected function validator(array $data)
{
    return Validator::make($data, [
        'name' => ['required', 'string', 'max:50','min:3'],
        'email' => ['required','email', 'unique:users'],
        'password' => ['required', 'min:8', 'confirmed'],
        'uni' => ['required'],
        'city' => ['required'],
    ],[
        'required' => 'هذا الحقل مطلوب',
        'email'=>'نمط البريد الالكتروني غير صحيح',
        'min'=>'يجب إدخال 8 حروف عالأقل',
        'email.unique' => 'هذا البريد الالكتروني مستخدم',
        'confirmed'=>'الرجاء التأكد من كلمة المرور',
        'max'=>'50 حرف هو أقصى حد يمكن إدخاله',
        'name.min'=>'الاسم قصير جدا',

    ]);
}

protected function create(array $data){ 
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
        'photo'=>'img/user.jfif',
        'university'=>$data['uni'],
        'city'=>$data['city'],
    ]);
}