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);
4

3 回答 3

18

感谢 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'));

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

于 2020-09-09T11:31:59.550 回答
9

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

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

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

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

于 2020-09-09T08:33:39.887 回答
-3

Laravel 8 和 laravel ui 不再兼容,

请改用 laravel/jetstream。

于 2020-09-09T08:39:04.803 回答