繁体   English   中英

传递给 Illuminate\Auth\EloquentUserProvider::validateCredentials() 的参数 1 必须是

[英]Argument 1 passed to Illuminate\Auth\EloquentUserProvider::validateCredentials() must be an instance of

传递给 Illuminate\Auth\EloquentUserProvider::validateCredentials() 的参数 1 必须是 Illuminate\Contracts\Auth\Authenticatable 的实例,给定的 App\Models\User 实例,在 D:\xampp\htdocs\backend\e-commerce 中调用\vendor\laravel\framework\src\Illuminate\Auth\SessionGuard.php 第 384 行 ---- 我有这个问题请帮助我我的 Model 页


namespace App;

use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;

class User extends Authenticatable
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    /**
     * The attributes that should be cast to native types.
     *
     * @var array
     */
    protected $casts = [
        'email_verified_at' => 'datetime',
    ];
}

我的 Controller


namespace App\Http\Controllers;

use App\Mail\UserRegisterMail;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Mail;


class UserController extends Controller
{
    public function login(){
        return view('user.login');
    }

    public function register(){
        return view('user.register');
    }

    public function registerPost(Request $request){
        $request->validate([
            'ad' => 'required|max:60',
            'email' => 'required|email',
            'şifrə' => 'required|confirmed',
        ]);
        $request->flash();
        $user = User::create([
            'name' => $request->ad,
            'email' => $request->email,
            'password' => Hash::make($request->şifrə),
            'activation_code' => Str::random(60),
            'active' => 0
        ]);
        Mail::to($request->email)->send(new UserRegisterMail($user));
        // auth()->login($user,true);
        return redirect()->route('home');
    }

    public function activation($code){
        $user = User::where('activation_code',$code)->first();
        if(!is_null($user))
        {
            $user->activation_code = null;
            $user->active = 1;
            $user->save();
            return redirect()->to('/')->with('message','Qeydiyyatınız tamamlandı');
        }
    }

    public function loginPost(Request $request){
        $request->validate([
            'email'=>'required|email',
            'şifrə'=>'required'
        ]);
        if(Auth::attempt(['email'=>$request->email,'password'=>$request->şifrə],$request->has('xatirla')))
        {
            return redirect()->intended('/');
        }else{
            return redirect()->route('register');
        }
    }
}

更改扩展 Model 以扩展 Authenticable。

在你的模型中

为您的User model 添加并更改以下行:

添加:

use Illuminate\Foundation\Auth\User as Authenticatable;

改变:

class User extends Model

class User extends Authenticatable

暂无
暂无

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

相关问题 传递给 Illuminate\Auth\EloquentUserProvider::validateCredentials() 的参数 1 必须是 Illuminate\Contracts\Auth\Authenticatable 的实例 EloquentUserProvider.php第114行中的ErrorException:参数1传递给Illuminate \\ Auth \\ EloquentUserProvider :: validateCredentials Laravel 8:传递给 Illuminate\Auth\SessionGuard::__construct() 的参数 2 必须是 Illuminate\Contracts\Auth\UserProvider 的实例,null 给定 传递给 Arubaao\\BasicAuth\\BasicGuard::__construct() 的参数 2 必须是 Illuminate\\Contracts\\Auth\\UserProvider 的实例,给定 null 社交名流:传递给 Illuminate\Auth\SessionGuard::login() 的参数 1 必须实现接口 Illuminate\Contracts\Auth\Authenticatable,给定 null 传递给控制器​​的参数1必须是Illuminate \\ Http \\ Request的实例? 传递给 Illuminate\Routing\Middleware\ThrottleRequests::addHeaders() 的参数 1 必须是 Laravel与MongoDB:传递给Illuminate \\ Database \\ Query \\ Builder :: __ construct()的参数2必须是Illuminate \\ Database \\ Query \\ Grammars的实例 传递给 Illuminate\\Database\\Eloquent\\Relations\\HasOneOrMany::save() 的参数 1 必须是 Illuminate\\Database\\Eloquent\\Model 的实例, LARAVEL 7.0 传递给 Illuminate\\Auth\\SessionGuard::login() 的参数 1 必须实现接口 Illuminate\\Contracts\\Auth\\Authenticatable,给定数组
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM