克隆Laravel项目后出现Class 'App\Providers\View' not found错误求助
我帮你分析下这个问题,你遇到的Class 'App\Providers\View' not found错误,核心原因是在App\Providers\ComposerServiceProvider.php的第27行,代码调用View::composer()时,程序找不到正确的View类——它错误地去App\Providers命名空间下查找这个类,但实际上Laravel的View门面根本不在这个位置。
先看你的报错代码片段:
25| public function boot() 26| { > 27| View::composer( 28| 'layouts.products', 'App\Http\ViewComposers\viewComposer' 29| ); 30| 31| View::composer('layouts.products', function ($view) {
朋友的项目能正常运行,说明他的ComposerServiceProvider.php文件里肯定有正确的类引入,而你克隆的这个文件大概率缺失了对应的use语句,或者引入了错误的命名空间。你可以按照下面的步骤排查解决:
第一步:检查并修正类引入
打开C:\xampp\htdocs\project\app\Providers\ComposerServiceProvider.php文件,在文件顶部的use语句区域,添加(或修正)Laravel View门面的引入:use Illuminate\Support\Facades\View;注意不要写成
use App\Providers\View;,这个命名空间下根本不存在View类,这就是报错的根源。第二步:重新生成自动加载文件
即使你修正了引入语句,有时候Composer的自动加载缓存可能还没更新,运行下面的命令刷新缓存:composer dump-autoload第三步:对比朋友的原文件
如果上面两步都没用,就把你本地的ComposerServiceProvider.php和朋友项目里的对应文件做对比,看看是不是克隆过程中文件内容有遗漏(比如朋友的文件里有正确的use语句,而你的没有)。
一般来说,做完第一步和第二步,这个错误就能解决了。
内容的提问来源于stack exchange,提问作者shaneeqa

