我升级了我的项目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 回答
在99%的情况下,将Laravel 4项目迁移到Laravel 5时找不到类的主要原因是缺少 Namespaces
将名称空间添加到所有类,控制器,旧过滤器作为中间件等非常重要 .
只需将文件/目录添加到您的作曲家 .
还有很多其他方法 . 或者使用psr-0,psr-4自动加载目录/文件 . 或者您在global.php中加载此文件 .
我有同样的问题 . 在升级指南(http://laravel.com/docs/5.0/upgrade#upgrade-5.0)之后,迁移很顺利但是当我开始使用Auth时,我得到了同样的错误 .
原因是我遵循了升级指南 . 当它说“因为我们不打算在本指南中迁移到完整的命名空间”时,实际上你应该在你的控制器中使用命名空间
然后在升级指南的“控制器”部分中展开您所做的操作 . 然后运行
composer dump-autoload
后,它将起作用 .