繁体   English   中英

Laravel 多重身份验证 - 未定义身份验证用户提供程序 []

[英]Laravel multi auth - Authentication user provider [] is not defined

当它放置时它起作用

'merchant' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

但是当我设置不同的表时它显示错误

'merchant' => [
        'driver' => 'session',
        'provider' => 'merchants',
    ],

错误:CreatesUserProviders.php 第 40 行中的 InvalidArgumentException:未定义身份验证用户提供程序 []。

有什么问题。 你能解释一下吗? 谢谢。

起初,您是否创建了商家提供商?

如果你没有

php artisan make:provider MerchantServiceProvider

然后你必须在:config/app.php/中注册你的提供者

'providers' => [ App\Providers\RouteServiceProvider::class ]

如果你想改变注册/认证表回去你的改变,你只需要在config/auth.php文件中改变

    'providers' => [
            'users' => [
                'driver' => 'eloquent',
/*change this ---->*/ 'model' => App\<modelclassname>::class,
            ],

这是身份验证用户提供程序,因此如果您想要添加新提供程序,则需要向此数组添加另一个提供程序。 您遇到的错误是因为您正在调用的提供者机制未在此处注册。

并检查您的 /app/modelname.php 是否有像这样创建的受保护表:

protected $table = 'merchant';  // ----> this is your table name

所以如果你想使用多个提供者,你应该在 config/auth.php 文件的用户提供者部分注册你的提供者。 您的提供程序数组应如下所示:

'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Users::class,
        ],
        'merchant' => [
            'driver' => 'eloquent',
            'model' => App\Merchant::class,
        ],
    ],

之后,您应该可以在问题中写入时使用提供程序。

您可以随时使用我的包https://github.com/Hesto/multi-auth并专注于您的应用程序,而不是这种烦人的配置。

您可以使用 database 或 elequent 关系作为驱动程序。

    'branchs' => [
        'driver' => 'database',
        'provider' => 'merchants',

    ],

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM