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.