Laravel 8-路由找不到控制器:目标类[Auth\LoginController]不存在
今天我去拉拉维尔8号转了一圈,但似乎路线门面再也找不到控制器了 路线Laravel 8-路由找不到控制器:目标类[Auth\LoginController]不存在,laravel,laravel-8,Laravel,Laravel 8,今天我去拉拉维尔8号转了一圈,但似乎路线门面再也找不到控制器了 路线/home给了我以下错误: 目标类[HomeController]不存在 我在运行时遇到了类似的错误:php-artisan-route:list Illuminate\Contracts\Container\BindingResolutionException Target class [Auth\LoginController] does not exist. at C:\...\vendor\laravel\frame
/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);
如果这是新安装的Laravel 8,则在
RouteService Provider
中没有定义要应用于您的路由的名称。您可以尝试将Auth::routes()
调用包装在声明命名空间App\Http\Controllers
的路由组中,或者以其他方式执行此操作。(假设您已安装laravel/ui
)
如果您想知道如何处理缺少为路由定义的命名空间的问题:
Laravel 8和Laravel ui不再兼容
改用laravel/jetstream。多亏了lagbox,我最终在RouteServiceProvider引导方法中将
名称空间('App\Http\Controllers')
添加到web路由中:
public function boot()
{
$this->configureRateLimiting();
$this->routes(function () {
Route::middleware('web')
->namespace('App\Http\Controllers')
->group(base_path('routes/web.php'));
这对我来说是个好办法。任何更好的解决方案都是最受欢迎的。您能谈谈它们是如何不再兼容的吗?请参阅以下内容:这并不是说它们是否兼容。。。它可以安装在版本8中,
composer.json
文件支持版本8的库。。。那么它不兼容呢?我在安装laravel 8时遇到了类似的问题,从dev develop
开始,但今天laravel发布了8版。可能已经修好了。虽然我还没试过,是的。这是今天刚刚发布的版本8的新安装。是的,在添加名称空间后,它工作正常。是虫子吗$this->namespace
返回null
谢谢,这非常有效。
public function boot()
{
$this->configureRateLimiting();
$this->routes(function () {
Route::middleware('web')
->namespace('App\Http\Controllers')
->group(base_path('routes/web.php'));