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

时间:2016-08-28 04:25:49

标签: php laravel laravel-5.3

它放在

时有用
'merchant' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

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

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

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

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

4 个答案:

答案 0 :(得分:0)

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

如果你没有

php artisan make:provider MerchantServiceProvider

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

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

答案 1 :(得分:0)

如果您想更改注册/认证表,请返回更改,您只需要更改config / auth.php文件

re.compile()

这是身份验证用户提供程序,因此如果您想要添加新提供程序,则需要向此阵列添加其他提供程序。您遇到的错误是因为您呼叫的提供商机制未在此处注册。

并检查您的/app/modelname.php是否具有如下所示的受保护表:

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

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

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

之后,您可以在撰写问题时使用提供者。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

您可以使用数据库或长期关系作为驱动程序。

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

    ],