Laravel 无法声明类控制器,因为该名称已在使用中

Laravel 无法声明类控制器,因为该名称已在使用中,laravel,laravel-5,Laravel,Laravel 5,我最近将一个Laravel4.2项目迁移到了5.0。到目前为止,我已经完成了所有必要的步骤,但我不断得到一个错误 无法声明类控制器,因为该名称已在使用中 我的控制器已按照laravel在升级指南中提供的内容进行了更改 <?php use Illuminate\Foundation\Bus\DispatchesCommands; use Illuminate\Routing\Controller as BaseController; use Illuminate\Foundation\Va

我最近将一个Laravel4.2项目迁移到了5.0。到目前为止,我已经完成了所有必要的步骤,但我不断得到一个错误

无法声明类控制器,因为该名称已在使用中

我的控制器已按照laravel在升级指南中提供的内容进行了更改

<?php

use Illuminate\Foundation\Bus\DispatchesCommands;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;

abstract class Controller extends BaseController {

    use DispatchesCommands, ValidatesRequests;

}
到目前为止,我找不到任何解决方案,如果你们知道该怎么做,这将对我有很大帮助:)提前谢谢

从类映射中删除
“app/Http/Controllers”

添加
名称空间App\Http\Controllers
上方使用


然后运行
composer dump auto

我很确定您必须添加名称空间

名称空间

默认情况下,Laravel 4应用程序在应用程序代码中不使用名称空间。因此,例如,所有有说服力的模型和控制器都只存在于“全局”名称空间中。为了更快地迁移,您也可以将这些类留在Laravel 5的全局名称空间中


创建自动发现事件及其侦听器类时,只需在侦听器类的顶部添加以下命名空间即可避免此错误:

namespace App\Listeners;

我在windows 2012服务器上遇到此问题

当我使用xdebug时

我开始调试,一切正常

我的控制器没有问题

<?php

namespace App\Http\Controllers;


use Illuminate\Routing\Controller as BaseController;
use Illuminate\Http\Request;

class HomeController extends BaseController

{

如果您的控制器位于一个文件夹中而不是app/Http/controller中,您应该像下面这样声明该命名空间:

namespace App\Http\Controllers\folder-name;
注:

还应添加以下内容:

use App\Http\Controllers\Controller;
否则会发生此错误:

 Class 'App\Http\Controllers\Controller' not found 

请注意缺少名称空间有时,尽管存在名称空间,但名称空间的路径不正确,仍会发生此错误!在我的例子中,我把我的控制器放在一个子文件夹中,忘记了更正/更新它的新名称空间!名称空间App\Http\Controllers\Sub\u Dir\Name\u Of_Controller.php这让我不得不在我的routes.php中写入控制器的整个路径。这是正常行为吗?在
App/Providers/RouteServiceProvider.php
中包括
routes.php
并在路由组中定义名称空间,如:
$router->group(['namespace'=>'App\Http\Controllers'],函数($router){require App_path('Http/routes.php');});
protected$namespace='App\Http\Controllers';在RouteServiceProviderYup中实现了这一点!另一个很酷的补充是,如果您添加更多路由组,您可以为所有这些控制器使用另一个名称空间,或者扩展该名称空间(如果它位于该路由文件中)。因此,您可以执行
['namespace'=>'Api']
这将引用
App\Http\controllers\Api
名称中的控制器这通常是一个名称空间问题,因此请确保在文件顶部定义名称空间。这是因为您在文件夹中有用户模型,而不是直接在/App。。。。
 Class 'App\Http\Controllers\Controller' not found