Laravel多认证 - 认证用户提供者[]未定义。

4

当它被放置时,它就能工作。

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

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

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

错误:在CreatesUserProviders.php的第40行中出现了无效参数异常:未定义身份验证用户提供程序[]。

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

4个回答

0

0

你最开始创建了你的商家提供者吗?

如果没有的话

php artisan make:provider MerchantServiceProvider

然后您需要在config/app.php中注册您的提供程序:

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

'providers' => [ App\Providers\RouteServiceProvider::class ] 或者 'providers' => [ App\Providers\MerchantServiceProvider::class ]? - Reidwanul Bari Zion
MerchantServiceProvider,抱歉回答晚了。 - Eliott

0

如果您想更改注册/认证表并带回更改,您只需要在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,
        ],
    ],

之后,您应该能够像在问题中编写的那样使用提供程序。


0

你可以使用数据库或Eloquent关系作为驱动程序。

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

    ],

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接