2017-08-09 151 views
1

我有兩個模型在我的laravel v5.4項目,用戶和管理員。Laravel多個驗證::嘗試

在配置/ auth.php我添加管理員警衛和供應商如下:

'guards' => [ 

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

    'api' => [ 
     'driver' => 'token', 
     'provider' => 'users', 
    ], 

    'admin' => [ 
     'driver' => 'session', 
     'provider' => 'admins', 
    ], 
], 


'providers' => [ 

    'users' => [ 
     'driver' => 'eloquent', 
     'model' => App\Models\User::class, 
    ], 

    'admins' => [ 
     'driver' => 'eloquent', 
     'model' => App\Models\Admin::class, 
    ], 
], 

現在AdminController類我想使用驗證::嘗試的功能,但默認情況下它使用用戶表。我可以更改config/auth.php中的默認值,如下所示,但是在這種情況下,我不能使用Auth :: attempt for users。

'defaults' => [ 
    'guard' => 'admin', 
    'passwords' => 'users', 
], 

我想設置用戶默認而是用驗證::企圖功能管理與像驗證的方法::嘗試(「管理員」,[憑證])。我如何使用Auth ::管理模式嘗試?

回答

2

您直接致電後衛,就像這樣:

Auth::guard('admin')->attempt($credentials); 

或者與助手:

auth()->guard('admin')->attempt($credentials); 

或者說,即使有助手更短:

auth('admin')->attempt($credentials);