4

放的时候有效

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

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

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

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

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

4

4 回答 4

0

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

于 2016-09-05T07:05:59.577 回答
0

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

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

    ],
于 2020-01-08T02:31:52.583 回答
0

如果您想更改注册/身份验证表,请返回您的更改,您只需在 config/auth.php 文件中进行更改

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

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

并检查您的 /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,
        ],
    ],

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

于 2016-08-31T22:29:45.087 回答
0

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

如果你没有

php artisan make:provider MerchantServiceProvider

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

'providers' => [ App\Providers\RouteServiceProvider::class ]
于 2016-08-28T05:21:30.373 回答