Laravel 4.2到5 Class' App \ Http \ Controllers \ Controller'未找到

时间:2015-03-23 14:02:45

标签: exception controller upgrade laravel-5 classnotfound

我升级了我的项目from Laravel 4.2 to 5.0,但在完成此过程后出现此错误:

  

在'/ app / Http / Controllers / Auth / AuthController.php中找不到类'App \ Http \ Controllers \ Controller':8

但是提到的控制器就在app / Http / Controllers / Controller.php中。

它也在composer.json,autoload,classmap中定义:

"autoload": {
        "classmap": [
            "database",
            "app/Http/Controllers",
            "app/Libraries"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },

显然这是命名空间问题,但我不知道解决它的问题

3 个答案:

答案 0 :(得分:3)

在99%的情况下,将Laravel 4项目迁移到Laravel 5时未找到类的主要原因是缺少命名空间

将名称空间添加到所有类,控制器,旧过滤器作为中间件等等非常重要。

答案 1 :(得分:2)

只需将文件/目录添加到您的作曲家。

  

“autoload”:{           “classmap”:[               “应用程序/ HTTP /控制器/ Controller.php这样”           ],

还有很多其他方法。 或者使用psr-0,psr-4自动加载目录/文件。或者您在global.php中加载此文件。

答案 2 :(得分:1)

我遇到了同样的问题。升级指南(http://laravel.com/docs/5.0/upgrade#upgrade-5.0)之后,迁移工作正常,但是当我开始使用Auth时,我遇到了同样的错误。

原因是我遵循了升级指南。当它说“因为我们不打算在本指南中迁移到完整的命名空间”时,实际上你应该在控制器中使用名称空间位于顶部

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

然后展开您在升级指南的“控制器”部分中所做的操作。然后在运行composer dump-autoload之后,它将起作用。