Laravel 多个 Auth::attempt
Laravel Multiple Auth::attempt
我的 laravel v5.4 项目中有两个模型,user 和 admin。
在 config/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 class 中,我想使用 Auth::attempt 功能,但默认情况下它使用用户 table。我可以更改 config/auth.php 中的默认值,如下所示,它可以工作,但在这种情况下,我不能为用户使用 Auth::attempt。
'defaults' => [
'guard' => 'admin',
'passwords' => 'users',
],
我想将用户设置为默认用户,但使用 Auth::attempt 函数作为管理员,方法类似于 Auth::attempt('admin',[credentials])。我如何将 Auth::attempt 用于管理模型?
你直接给门卫打电话,像这样:
Auth::guard('admin')->attempt($credentials);
或与帮手:
auth()->guard('admin')->attempt($credentials);
或者,使用助手更短:
auth('admin')->attempt($credentials);
我的 laravel v5.4 项目中有两个模型,user 和 admin。
在 config/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 class 中,我想使用 Auth::attempt 功能,但默认情况下它使用用户 table。我可以更改 config/auth.php 中的默认值,如下所示,它可以工作,但在这种情况下,我不能为用户使用 Auth::attempt。
'defaults' => [
'guard' => 'admin',
'passwords' => 'users',
],
我想将用户设置为默认用户,但使用 Auth::attempt 函数作为管理员,方法类似于 Auth::attempt('admin',[credentials])。我如何将 Auth::attempt 用于管理模型?
你直接给门卫打电话,像这样:
Auth::guard('admin')->attempt($credentials);
或与帮手:
auth()->guard('admin')->attempt($credentials);
或者,使用助手更短:
auth('admin')->attempt($credentials);