Laravel 8-路由找不到控制器:目标类[Auth \ LoginController]不存在

问题描述

今天我去兜风了Laravel 8,但看来Route Facade再也找不到控制器了。

路线/home给我这个错误:

目标类[HomeController]不存在。

我在运行时遇到类似的错误:php artisan route:list

Illuminate\Contracts\Container\BindingResolutionException

Target class [Auth\LoginController] does not exist.

at C:\...\vendor\laravel\framework\src\Illuminate\Container\Container.php:811
811 throw new BindingResolutionException("Target class [$concrete] does not exist.",$e);

解决方法

多亏了lagbox,我最终在RouteServiceProvider引导方法中向网络路由添加了namespace('App\Http\Controllers')

public function boot()
{
    $this->configureRateLimiting();

    $this->routes(function () {
        Route::middleware('web')
            ->namespace('App\Http\Controllers')
            ->group(base_path('routes/web.php'));

那对我有用。任何更好的解决方案都将受到欢迎。

,

如果这是Laravel 8的全新安装,则RouteServiceProvider中未定义要应用到您的路线的名称。您可以尝试将Auth::routes()调用包装在声明名称空间App\Http\Controllers的路由组中,或者以其他方式进行处理。 (假设您已经安装了laravel/ui

Route::namespace('App\Http\Controllers')->group(function () {
    Auth::routes();
});

如果您想知道如何解决缺少为路由定义的名称空间的问题,

https://stackoverflow.com/a/63808132/2109233

,

Laravel 8和laravel ui arent不再兼容,

改为使用laravel / jetstream。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...