2017-08-09 87 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);