我已经阅读了有关我的错误的其他问题,所以我重新检查了我的代码,没有发现任何错别字错误,错误
Symfony \ 组件 \ 调试 \ 异常 \ 致命可抛出错误 (E_RECOVERABLE_ERROR( 参数 2 传递给 Illuminate\Auth\SessionGuard::__construct(( 必须实现接口 Illuminate\Contracts\Auth\UserProvider, null 给定, 调用 \vendor\laravel\framework\src\Illuminate\Auth\AuthManager.php on line 125
身份验证.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' => AppAdmin::class,
],
'company' => [
'driver' => 'eloquent',
'model' => AppModelEmployee::class,
],
'employee' => [
'driver' => 'eloquent',
'model' => AppModelEmployee::class,
],
],
];
您需要为新防护定义提供程序,否则它将引发错误。您的提供商也应该拼写为"admins">,因为您正在为管理员引用特定的迁移表
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => AppUser::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => AppAdmin::class,
],
],
一切都很好,我只是在控制器中被称为旧的默认用户身份验证,我在旧项目中进行了修改,现在我安装了新项目,然后移动除用户.php默认模型以外的所有文件
$companyAuth = auth()->guard('user'); //called wrong default
$companyAuth = auth()->guard('employee'); //now working fine