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

uemypmqf  于 2022-12-28  发布在  PHP
关注(0)|答案(4)|浏览(172)

当它把

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

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

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

Error:服务器端发生异常。未定义身份验证用户提供程序[]。
出什么事了。你能解释一下吗?谢谢。

wgx48brx

wgx48brx1#

一开始你创建了你的商家供应商吗?
如果你没有

php artisan make:provider MerchantServiceProvider

然后,您必须在以下位置注册您的提供商:配置文件/app.php

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

isr3a4wc2#

如果你想修改注册表/认证表,你只需要在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文件的user provider部分注册你的提供者,你的provider数组应该如下所示:

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

之后,您应该能够在编写问题时使用提供程序。

jvlzgdj9

jvlzgdj93#

您可以始终使用我的包https://github.com/Hesto/multi-auth,并将注意力集中在应用程序上,而不是这种烦人的配置。

m3eecexj

m3eecexj4#

可以使用数据库或元素关系作为驱动器。

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

    ],

相关问题