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

ReflectionException in Container.php line 741: Class view does not exist

我正在与 Homestead 合作 Laravel 5.1 项目。我进入我的 Vag运行t 机器和 运行 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) 恢复到我项目的以前版本。但是,是否有更简单的解决方法?

确保您的 Illuminate\View\ViewServiceProvider 已列在 config/app.php[ 的提供商列表中=17=] 文件.

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

我已经两次遇到此错误消息,所以我将解决方案放在这里以备将来 google 需要时使用。

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

瞧。不客气,未来的我。

当 'bootstrap' 文件夹及其内容的权限不正确时,也会发生这种情况。对我来说,修改为可写修复了它。

在我的例子中,文件命名不正确。 class 声明为:

class NoSessionAccessMiddleware {

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

有同样的问题,我尝试了上述解决方案,但没有成功。在 运行 composer dump-autoload 之后,我发现这是因为我忘记安装一个包 (Laravel Excel)生产服务器。

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

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

至:

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

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

供我以后参考:

发生这种情况的原因有多种。最常见,

  • bootstrap/cache 不可写。
  • 缺少 config/view.php 或此文件有语法错误。
  • 试试 composer dumpautoload -o
  • config/app.php 上,ViewServiceProviderView 别名不得注释掉。

在 artisan 中,您可能看不到确切的错误。如果是这样,请转到错误行,并转储堆栈跟踪。在这种情况下,文件将是,Illuminate/Container/Container.php,第 741 行(或屏幕上显示的行。使用 dd($e) 转储原始异常,并查看错误从何处开始。