如何解决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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。