【发布时间】:2017-09-01 15:12:36
【问题描述】:
我收到此错误:
调用未定义的方法 Illuminate\Auth\TokenGuard::attempt()
从此代码:
if(Auth::guard('admin')->attempt(['email' => $request->email, 'password' => $request->password], $request->remember)){
return redirect()->intended(route('admin.dashboard'));
}else{
我已经导入了Illuminate\Support\Facades\Authas the docs suggest
我的auth.php 可能会有所帮助
<?php
return [
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
'admin-api' => [
'driver' => 'token',
'provider' => 'admins',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
],
],
'passwords' => [
'users' => [
'provider' => 'users',
'table' => 'password_resets',
'expire' => 60,
],
'admins' => [
'provider' => 'admins',
'table' => 'password_resets',
'expire' => 15,
],
],
];
【问题讨论】:
-
您的控制器中是否定义了 Auth::guard() 方法?看起来它正在尝试使用 api 保护之类的令牌保护之一,而不是您的管理员保护。