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

Laravel 4.2 to 5 Class 'App\Http\Controllers\Controller' not found

我升级了我的项目from Laravel 4.2 to 5.0,但是当我完成这个过程时出现这个错误:

Class 'App\Http\Controllers\Controller' not found' in .../app/Http/Controllers/Auth/AuthController.php:8

但是提到的控制器在那里,在 app/Http/Controllers/Controller.php.

也在composer.json中定义,自动加载,classmap:

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

显然这是一个命名空间问题,但我不知道如何解决它

只需将 file/directory 添加到您的作曲家即可。

"autoload": { "classmap": [ "app/Http/Controllers/Controller.php" ],

还有很多其他方法。 或者使用 psr-0,psr-4 来自动加载 directory/file。或者您在 global.php.

中加载此文件

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

向所有 类、控制器、作为中间件的旧过滤器等添加名称空间很重要

我遇到了同样的问题。按照升级指南 (http://laravel.com/docs/5.0/upgrade#upgrade-5.0) 迁移很顺利,但是当我开始使用 Auth 时,我遇到了同样的错误。

原因是我遵循了升级指南。当它说 "Since we are not going to migrate to full namespacing in this guide" 时,实际上你应该在你的控制器中使用命名空间,并在它们的顶部

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

然后展开您在升级指南的“控制器”部分所做的操作。然后运行composer dump-autoload后就可以了