Reputation: 1202
I have read other questions about my error so I re-checked my code and didn't found any typo mistake , Error
Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_RECOVERABLE_ERROR) Argument 2 passed to Illuminate\Auth\SessionGuard::__construct() must implement interface Illuminate\Contracts\Auth\UserProvider, null given, called in \vendor\laravel\framework\src\Illuminate\Auth\AuthManager.php on line 125
Auth.php
return [
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
'admin' => [
'driver' => 'session',
'provider' => 'admin',
],
'user' => [
'driver' => 'session',
'provider' => 'user',
],
'company' => [
'driver' => 'session',
'provider' => 'company',
],
'employee' => [
'driver' => 'session',
'provider' => 'employee',
],
],
'providers' => [
'admin' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
],
'company' => [
'driver' => 'eloquent',
'model' => App\Model\Employee::class,
],
'employee' => [
'driver' => 'eloquent',
'model' => App\Model\Employee::class,
],
],
];
Upvotes: 2
Views: 7231
Reputation: 389
You need to define the provider for your new guard otherwise it will throw the error. Your provider should also be spelt 'admins' as you are referencing the particular migration table for admins
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
],
],
Upvotes: 2
Reputation: 1202
Everything was fine I was just called old default user auth in controller which I was modified in old project and now I am installed new project and then move all of files except user.php default model
$companyAuth = auth()->guard('user'); //called wrong default
$companyAuth = auth()->guard('employee'); //now working fine
Upvotes: 0