我升级了我的项目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/"
}
},
显然这是命名空间问题,但我不知道解决它的问题
答案 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
之后,它将起作用。