php - Laravel 错误:找不到用于多重身份验证的类 'App\Http\Controllers\Auth\Auth'
问题描述
我想在我的 LoginController 中使用多重身份验证,我有以下代码(为简洁起见)
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
class LoginController extends Controller{
use AuthenticatesUsers;
public function __construct()
{
$this->middleware('guest')->except('logout');
$this->middleware('guest:admin')->except('logout');
}
public function showAdminLoginForm()
{
return view('auth.login', ['url' => 'admin']);
}
public function adminLogin(Request $request){
$this->validate($request, [
'email' => 'required|email',
'password' => 'required|min:6'
]);
--> if (Auth::guard('admin')->attempt(['email' => $request->email, 'password' => $request->password], $request->get('remember'))) {
return redirect()->intended('/admin');
}
return back()->withInput($request->only('email', 'remember'));
}
}
当我登录时,它会产生错误。
Class 'App\Http\Controllers\Auth\Auth' not found
它针对的是我用箭头指向的那条线。
请问错误的原因可能是什么,我该如何纠正它。
解决方案
在 PHP 中引用类名时,它们都充当relative,这意味着类名将附加到当前命名空间的任何位置。
如果您不在命名空间中,并且您正在查找 class Auth
,PHP 将尝试查找Auth
. 如果您在命名空间中App
并查找类Auth
,PHP 将尝试查找App\Auth
或Auth
在命名空间中定义的类App
。
因为您的控制器在命名空间内App\Http\Controllers\Auth
,所以它在该类的同一个命名空间内查找Auth
。
为了通过绝对查找查找不同的命名空间,您可以在类前面加上反斜杠(从根开始),或添加导入语句。\
use
按照Laravel 文档中的示例,为适当的外观添加一条use
语句应该可以解决您的错误:
use Illuminate\Support\Facades\Auth;
这可以与use
您的类中的其他导入语句一起放置。快乐编码!
推荐阅读
- r - %<>% 操作的含义
- .net - .NET HotChocolate 泛型类型分页
- android - vkEnumeratePhysicalDevices 在使用 adb shell 执行的 android 命令行程序中返回 0
- vue.js - Vue JS 组件数据没有返回到模板
- python - CDK S3-Assets 参数必须有值
- android - 不支持报警管理器中的其他插件?Flutter 不支持某些任务的后台执行(如果我们杀死了应用程序)?
- babeljs - 如何使用 Babel 要求项目范围之外的文件?
- microsoft-graph-api - 如何使用 Graph Api 检索 OneDrive 中的所有目录和子目录?
- java - ContentCachingRequestWrapper 在过滤器中使用时会产生空输出,但在控制器中使用时不会
- google-data-studio - 将多行单元格中的文本合并为一个(Google Data Studio)