2016-08-28 23 views
1

に定義されていない、それはLaravelマルチ認証 - 認証ユーザープロバイダが[]

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

を入れたときにそれは動作しますが、それは私が別のテーブルを設定し

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

エラーエラーを示していますCreatesUserProvidersで InvalidArgumentException .php line 40:認証ユーザプロバイダ[]は定義されていません。

問題は何ですか。私に説明してくれませんか?おかげさまで

答えて

0

まず、あなたはあなたの業者を作成しましたか?

あなたは

php artisan make:provider MerchantServiceProvider 

をdidntのなら、あなたはあなたのプロバイダを登録する必要があります:あなたがして戻って登録/認証テーブルを変更したい場合は設定/ app.php/

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

私はそれをしました。しかし、それはまだそのエラーを示しています。 –

+0

'プロバイダ' => [App \ Providers \ RouteServiceProvider :: class]または 'プロバイダ' => [App \ Providers \ MerchantServiceProvider :: class]? –

+0

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, 
     ], 
    ], 

これ以降、質問に記載するときにプロバイダーを使用できるはずです。