升级Laravel8.45新版后,报异常Illuminate\Contracts\Container\BindingResolutionException Target class does not exist.

原因如下:

Laravel旧版本中,RouteServiceProvider类中包含$namespace属性,值为AppHttpControllers,此属性可自动为路由添加AppHttpControllers前缀。

新版中,该属性值默认为null,路由中只能使用标准PHP调用语法(需填写controller全路径),新版这样处理的目的是可以在各类IDE中提供更好的跳转支持,如果想恢复旧版自动前缀,解除异常,在RouteServiceProvider类中取消$namespace注释即可:

protected $namespace = 'App\\Http\\Controllers';
©本文为原创文章,著作权归博主所有,转载请联系博主获得授权

发表评论