首页 文章

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

提问于
浏览
4

我升级了我的项目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 回答

  • 1

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

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

  • 3

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

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

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

  • 2

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

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

    namespace App\Http\Controllers;
    
    use App\Http\Controllers\Controller;
    

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

相关问题