简体   繁体   中英

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

Argument 1 passed to Illuminate\Auth\EloquentUserProvider::validateCredentials() must be an instance of Illuminate\Contracts\Auth\Authenticatable, instance of App\Models\User given, called in D:\xampp\htdocs\backend\e-commerce\vendor\laravel\framework\src\Illuminate\Auth\SessionGuard.php on line 384 ---- I have this problem please help me MY Model Page


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',
    ];
}

My 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');
        }
    }
}

Change extends Model to extends Authenticable.

in your Model

Add and change below lines for your User model:

Add:

use Illuminate\Foundation\Auth\User as Authenticatable;

Change:

class User extends Model

to

class User extends Authenticatable

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

Related Question Argument 1 passed to Illuminate\Auth\EloquentUserProvider::validateCredentials() must be an instance of Illuminate\Contracts\Auth\Authenticatable ErrorException in EloquentUserProvider.php line 114: Argument 1 passed to Illuminate\Auth\EloquentUserProvider::validateCredentials Laravel 8 : Argument 2 passed to Illuminate\Auth\SessionGuard::__construct() must be an instance of Illuminate\Contracts\Auth\UserProvider, null given Argument 2 passed to Arubacao\BasicAuth\BasicGuard::__construct() must be an instance of Illuminate\Contracts\Auth\UserProvider, null given Socialite : Argument 1 passed to Illuminate\Auth\SessionGuard::login() must implement interface Illuminate\Contracts\Auth\Authenticatable, null given Argument 1 passed to controller must be an instance of Illuminate\Http\Request? Argument 1 passed to Illuminate\Routing\Middleware\ThrottleRequests::addHeaders() must be an instance of Laravel with MongoDB: Argument 2 passed to Illuminate\Database\Query\Builder::__construct() must be an instance of Illuminate\Database\Query\Grammars Argument 1 passed to Illuminate\Database\Eloquent\Relations\HasOneOrMany::save() must be an instance of Illuminate\Database\Eloquent\Model, LARAVEL 7.0 Argument 1 passed to Illuminate\Auth\SessionGuard::login() must implement interface Illuminate\Contracts\Auth\Authenticatable, array given
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM