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

Phi*_*bin 4 laravel laravel-8

我今天去试了一下 Laravel 8,但似乎 Route 门面找不到控制器了。

路线/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.", 0, $e);
Run Code Online (Sandbox Code Playgroud)

Phi*_*bin 14

感谢 lagbox,我最终namespace('App\Http\Controllers')在 RouteServiceProvider 启动方法中添加到 web 路由:

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

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

这对我有用。任何更好的解决方案将是最受欢迎的。


lag*_*box 6

如果这是 Laravel 8 的全新安装,则没有在RouteServiceProvider要应用于您的路由的命名空间中定义。您可以尝试将Auth::routes()调用包装在声明 namespace 的路由组中App\Http\Controllers,或者以不同的方式进行。(假设您已安装laravel/ui

Route::namespace('App\Http\Controllers')->group(function () {
    Auth::routes();
});
Run Code Online (Sandbox Code Playgroud)

如果您想知道如何处理缺少为您的路由定义的命名空间的问题:

/sf/answers/4466569271/