我正在与Homestead合作一个Laravel 5.1项目。我闯入我的Vagrant机器,运行Composer Update命令,试图更新我的项目,现在我得到了以下错误:
1. in Container.php line 741
2. at ReflectionClass->__construct('view') in Container.php line 741
3. at Container->build('view', array()) in Container.php line 631
4. at Container->make('view', array()) in Application.php line 674
5. at Application->make('IlluminateContractsViewFactory') in Container.php line 842
6. at Container->resolveClass(object(ReflectionParameter)) in Container.php line 805
7. at Container->getDependencies(array(object(ReflectionParameter)), array()) in Container.php line 776
8. at Container->build('IlluminateViewMiddlewareShareErrorsFromSession', array()) in Container.php line 631
9. at Container->make('IlluminateViewMiddlewareShareErrorsFromSession', array()) in /home/vagrant/Sites/laravel-basics/vendor/laravel/framework/src/Illuminate/Foundation/Application.php line 674
10. at Application->make('IlluminateViewMiddlewareShareErrorsFromSession') in Pipeline.php line 123
11. at Pipeline->IlluminatePipeline{closure}(object(Request)) in StartSession.php line 62
12. at StartSession->handle(object(Request), object(Closure))
13. at call_user_func_array(array(object(StartSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
14. at Pipeline->IlluminatePipeline{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
15. at AddQueuedCookiesToResponse->handle(object(Request), object(Closure))
16. at call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
17. at Pipeline->IlluminatePipeline{closure}(object(Request)) in EncryptCookies.php line 59
18. at EncryptCookies->handle(object(Request), object(Closure))
19. at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
20. at Pipeline->IlluminatePipeline{closure}(object(Request)) in CheckForMaintenanceMode.php line 44
21. at CheckForMaintenanceMode->handle(object(Request), object(Closure))
22. at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
23. at Pipeline->IlluminatePipeline{closure}(object(Request))
24. at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
25. at Pipeline->then(object(Closure)) in Kernel.php line 122
26. at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 87
27. at Kernel->handle(object(Request)) in index.php line 54
我不确定是什么坏了。我已经在Laravel 5.1中工作了,Composer运行得很好。我觉得我有两个基本的选择:1)尝试恢复到Composer的前一版本,或者2)恢复到我项目的前一个版本。然而,有没有更简单的解决方案?
我已经两次遇到这个错误消息了,所以我把解决方案放在这里,以防将来需要在谷歌上搜索。
有时会出现此错误,因为"/bootstrap/cache"目录不可写。因此,它无法编译视图。解决方案是对该目录进行chmod,以便将其写入
沃伊拉。不客气,Future Me。
确保Illuminate\View\ViewServiceProvider已列在config/app.php文件中的提供程序列表中。
显然,容器中没有视图服务,而这正是设置它所提供的。
供我将来参考:
发生这种情况有几个原因。最常见的
bootstrap/cache
不可写- 缺少
config/view.php
或此文件存在语法错误 - 试用
composer dumpautoload -o
- 在
config/app.php
、ViewServiceProvider
和View
上,别名不得注释掉
在artisan中,您可能看不到确切的错误。如果是,请转到错误行,并转储堆栈跟踪。在这种情况下,文件将是Illuminate/Container/Container.php
的第741行(或屏幕上显示的行)。用dd($e)
转储原始异常,并查看错误从哪里开始。
在我的案例中,文件的名称不正确。该类被声明为:
class NoSessionAccessMiddleware {
但文件名为NoSessionAccess.php
,我只是将文件重命名为NoSessionAccessMiddleware.php
,它就解决了这个问题。
遇到同样的问题,我尝试了上述解决方案,但没有成功。在运行composer dump自动加载后,我发现这是因为我忘记安装我在开发服务器上安装的一个包(Laravel Excel),而这个包还没有加载到生产服务器上。
我在更新项目名称空间后遇到了同样的问题。我不得不更新composer.json文件:
"psr-4": {
"App\": "myforms/app/"
}
至:
"psr-4": {
"App\": "app/"
}
在服务器上的源目录中,运行composer update
,然后运行composer dump-autoload
当'bootstrap'文件夹及其内容的权限不正确时,也可能发生这种情况。对我来说,chmodding到可写修复了它。