多重授权错误

Error on multiple auth

我尝试创建多重身份验证,但每次我都得到:

Type error: Argument 2 passed to Illuminate\Auth\SessionGuard::__construct() must be an instance of Illuminate\Contracts\Auth\UserProvider, null given, called in /Users/admin/www/laravelapp/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php on line 123

在 google 中进行了搜索,但没有任何帮助。不知道。可能有人以前遇到过这个错误吗?我的 auth.php 在配置中:

<?php

return [

'defaults' => [
    'guard' => 'web',
    'passwords' => 'users',
],

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'token',
        'provider' => 'users',
    ],

    'admin' => [
        'driver' => 'session',
        'provider' => 'admins',
    ],

    'admin-api' => [
        'driver' => 'token',
        'provider' => 'admins',
    ],
],

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],
    'admin' => [
        'driver' => 'eloquent',
        'model' => App\Admin::class,
    ],
],
   ...

已清除缓存。但没有帮助。 PS:我以前在另一个项目中使用过它,但没有在新项目中使用过。 :/

天哪,我发现问题了。问题:提供商名称错误:/

'defaults' => [
    'guard' => 'web',
    'passwords' => 'users',
],

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'token',
        'provider' => 'users',
    ],

    'admin' => [
        'driver' => 'session',
        'provider' => 'admins',
    ],

    'admin-api' => [
        'driver' => 'token',
        'provider' => 'admins',
    ],
],

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],
    'admins' => [ //<----- changed to admins like in guards 
        'driver' => 'eloquent',
        'model' => App\Admin::class,
    ],
],
   ...

有时您只需要 post 代码到 Whosebug 就可以看到您自己的问题:)