简体   繁体   English

Laravel 7“找不到类'App\\Http\\Controllers\\Validator'”

[英]Laravel 7 "Class 'App\Http\Controllers\Validator' not found"

A few days ago I started learning laravel 7. I bought a course on udemy.前几天开始学习laravel 7,买了udemy的课程。 I got to the part where the real registry system went and started to rewrite the code like in the video, but when I do it I get an error !我到了真正的注册表系统所在的部分,并开始像视频中那样重写代码,但是当我这样做时,我得到了一个error

Error Message: "Class 'App\Http\Controllers\Validator' not found"

I've been trying to fix this for hours, and I'm not doing well我已经尝试解决这个问题好几个小时了,但我做得不好

AccountController.php账户控制器.php

<?php

namespace App\Http\Controllers;

class AccountController extends Controller
{
    public function getcreate(){
        return view('account.create');
    }

    public function postcreate(){
        $validator = Validator::make(Input::all(), 
        array(
            'email'  =>      'required|max:50|email|unique:users',
            'username' =>    'required|max:20|min:3|unique:users',
            'password' =>    'required|min:6',
            'repeat_pass' => 'required|same:password'   
        ));

        if($validator->fails()){
            die('ERROR');
        }
        else{
            die('Cool');
        }
    }
}

you need to import validator namespace您需要导入validator命名空间

use Illuminate\Support\Facades\Validator;

then instead of Input you could use request()->all() helper function那么你可以使用request()->all()辅助函数代替Input

so it will be like this所以它会是这样的

namespace App\Http\Controllers;
use Illuminate\Support\Facades\Validator;

class AccountController extends Controller
{
    public function getcreate(){
        return view('account.create');
    }

    public function postcreate(){
        $validator = Validator::make(request()->all(), 
        array(
            'email'  =>      'required|max:50|email|unique:users',
            'username' =>    'required|max:20|min:3|unique:users',
            'password' =>    'required|min:6',
            'repeat_pass' => 'required|same:password'   
        ));

        if($validator->fails()){
            die('ERROR');
        }
        else{
            die('Cool');
        }
    }
}

You will need to import the Validator class from it's correct namespace which is Illuminate\\Support\\Facades .您需要从正确的命名空间Illuminate\\Support\\Facades导入Validator类。 So goes with Input class. Input类也是如此。 Best way I can suggest is to add these in aliases section in config\\app.php like below:我建议的最好方法是将这些添加到config\\app.php aliases部分,如下所示:

 'aliases' => [
     // other imports
     'Validator' => Illuminate\Support\Facades\Validator::class,
     'Input' => Illuminate\Support\Facades\Input::class,
 ]

Now, you can simply use them in your controller like below:现在,您可以简单地在控制器中use它们,如下所示:

<?php

namespace App\Http\Controllers;
use Validator;
use Input;


class AccountController extends Controller
{
 // rest of your code
}

您可以在顶部的控制器中使用Validator命名空间,例如:

use Validator;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM