解决 Laravel 8 中的“目标类未找到”错误
使用时遇到错误“目标类控制器不存在” Laravel 8 可能会令人沮丧。此问题的出现是由于 Laravel 默认配置的更改消除了命名空间的自动前缀。
理解问题
在以前的 Laravel 版本中,路由组自动收到名称空间前缀,但这种行为已在 Laravel 8 中删除。因此,在路由中引用控制器时,完全限定类名(FQCN) 必须用于确保正确的分辨率。
解决方案选项
// Register route using FQCN Route::get('register', 'App\Http\Controllers\Api\RegisterController@register');
a。将命名空间添加到路由组:
// Add namespace to 'api' route group Route::prefix('api') ->middleware('api') ->namespace('App\Http\Controllers') ->group(base_path('routes/api.php'));
b.使用 $namespace 属性(可选):
// Set namespace property in RouteServiceProvider protected $namespace = 'App\Http\Controllers';
通过设置 $namespace 属性,您可以方便地生成操作的 URL。
从以前的 Laravel 版本升级:
如果您是从以前的 Laravel 版本升级,您可以取消注释RouteServiceProvider 中的 $namespace 属性用于恢复路由的自动命名空间前缀。
附加说明:
以上是如何修复 Laravel 8 中的'未找到目标类”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!