Laravel 5.0升级后自定义Language类报Class not found错误求助
问题定位与修复步骤
你遇到的类找不到问题由多个拼写、自动加载、命名空间配置错误共同导致,按以下步骤逐一修复即可:
- 修正Language类的拼写与引入缺失
Language.php顶部定义的命名空间存在拼写错误,Libaries缺少字母r,同时缺少Request、Lang门面的引入语句,修改后代码如下:<?php namespace App\Libraries; use Illuminate\Support\Facades\Facade; use Illuminate\Support\Facades\Request; use Illuminate\Support\Facades\Lang; // 后续类代码保持不变 - 修正composer.json自动加载配置
当前PSR-4规则错误将App\命名空间映射到了不存在的vv5/目录,Laravel 5默认App\对应app/目录,修改autoload块的PSR-4配置:
无需单独将单个文件加入classmap,PSR-4规则会自动识别"autoload": { "classmap": [ "database/migrations", "database/seeds", "app/Http/Controllers", "app/models", "app/commands", "resources/lang" ], "psr-4": { "App\\": "app/" } }app/Libraries目录下的类。 - 清理视图文件的错误配置
Laravel视图文件不需要定义命名空间,同时补充use语句末尾缺失的分号,home.php顶部代码修改为:<?php use App\Libraries\Language; ?> - 重新生成自动加载缓存
所有修改完成后,在项目根目录执行命令更新自动加载文件:composer dump-autoload
如果修改后调用Facade仍有报错,可以在config/app.php的aliases数组中添加别名注册:
'aliases' => [ // 其他原有别名保持不变 'Language' => App\Libraries\Language::class, ]
内容的提问来源于stack exchange,提问作者severi törmä
相关产品推荐
相关产品推荐

