我今天去试了一下 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)
这对我有用。任何更好的解决方案将是最受欢迎的。
如果这是 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)
如果您想知道如何处理缺少为您的路由定义的命名空间的问题:
| 归档时间: |
|
| 查看次数: |
11276 次 |
| 最近记录: |