Container.php第741行中的ReflectionException:类视图不存在

时间:2016-01-08 00:26:34

标签: php laravel composer-php laravel-5.1 homestead

我正在与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('Illuminate\Contracts\View\Factory') 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('Illuminate\View\Middleware\ShareErrorsFromSession', array()) in Container.php line 631
    9. at Container->make('Illuminate\View\Middleware\ShareErrorsFromSession', array()) in /home/vagrant/Sites/laravel-basics/vendor/laravel/framework/src/Illuminate/Foundation/Application.php line 674
   10. at Application->make('Illuminate\View\Middleware\ShareErrorsFromSession') in Pipeline.php line 123
   11. at Pipeline->Illuminate\Pipeline\{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->Illuminate\Pipeline\{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->Illuminate\Pipeline\{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->Illuminate\Pipeline\{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->Illuminate\Pipeline\{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)恢复到我项目的先前版本。但是,有一个更简单的解决方案吗?

7 个答案:

答案 0 :(得分:22)

我现在已经两次遇到此错误消息,所以我将此解决方案放在此处以防万一我将来需要谷歌一段时间。

有时会发生此错误,因为" / bootstrap / cache"目录不可写。因此,它无法编译视图。解决方案是chmod该目录,以便可以写入。

瞧。欢迎你,Future Me。

答案 1 :(得分:6)

确保 config / app.php 文件中的提供商列表中列出照明\查看\ ViewServiceProvider

显然,容器中没有 view 服务,这是设置它的提供。

答案 2 :(得分:0)

就我而言,该文件的命名不正确。该类被声明为:

class NoSessionAccessMiddleware {

但是文件被命名为NoSessionAccess.php,我只是将文件重命名为NoSessionAccessMiddleware.php,它解决了该问题。

答案 3 :(得分:0)

遇到同样的问题,我没有运气就尝试了上述解决方案。在运行作曲家dump-autoload之后,我发现这是因为我忘记安装尚未在生产服务器上加载的开发服务器上安装的软件包(Laravel Excel)。

答案 4 :(得分:0)

更新项目名称空间后,我遇到了同样的问题。我必须更新composer.json文件:

 "psr-4": {
        "App\\": "myforms/app/"
    } 

收件人:

 "psr-4": {
        "App\\": "app/"
    }

在服务器上的源目录中,运行composer update,然后运行composer dump-autoload

答案 5 :(得分:0)

供以后参考:

发生这种情况可能有几个原因。最常见的

  • bootstrap/cache不可写。
  • 缺少config/view.php或此文件存在语法错误。
  • 尝试使用composer dumpautoload -o
  • config/app.php上,ViewServiceProviderView的别名不能被注释掉。

在技术人员中,您可能没有看到确切的错误。如果是这样,请转到错误行,并转储到stacktrace。在这种情况下,文件将为Illuminate/Container/Container.php行741(或屏幕上显示的行。使用dd($e)转储原始异常,并查看错误的起始位置。

答案 6 :(得分:-3)

当“ bootstrap”文件夹及其内容的权限不正确时,也会发生这种情况。对我而言,可写可修复它。