【问题标题】:Fatal Error Laravel: Uncaught ReflectionException when i view my Site致命错误 Laravel:查看我的网站时未捕获 ReflectionException
【发布时间】:2016-08-19 18:05:47
【问题描述】:

查看我的网站时出现以下错误。

我的错误:

致命错误:未捕获的 ReflectionException:类日志不存在于 /home/vagrant/Code/in10km/vendor/laravel/framework/src/Illuminate/Container/Container.php:741> 堆栈跟踪:#0 /home/vagrant/Code/in10km/vendor/laravel/framework/src/Illuminate/Container/Container.php(741): ReflectionClass->__construct('log') #1 /home/vagrant/Code/in10km/vendor/laravel/framework/src/Illuminate/Container/Container.php(631): Illuminate\Container\Container->build('log', Array) #2 /home/vagrant/Code/in10km/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(674): Illuminate\Container\Container->make('log', Array) #3 /home/vagrant/Code/in10km/vendor/laravel/framework/src/Illuminate/Container/Container.php(842): Illuminate\Foundation\Application->make('log') #4 /home/vagrant/Code/in10km/vendor/laravel/framework/src/Illuminate/Container/Container.php(805): Illuminate\Container\Container->resolveClass(Object(ReflectionParameter)) > #5 /home/vagrant/Code/in10km/vendor/laravel/framework/src/Illuminate/Container/Container.php(774): 我在 /home/vagrant/Code/in10km/vendor/laravel/framework/src/Illuminate/Container/Container.php 在第 741 行

我的Composer.json文件是这样的

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.1.*",
        "doctrine/dbal": "v2.4.2",
        "swiftmailer/swiftmailer": "^5.4",
        "guzzlehttp/guzzle": "~5.3|~6.0",       
        "chrisbjr/api-guard": "^2.3",
        "serverfireteam/panel": "1.3.*",
        "laravel/socialite": "^2.0"

    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~4.0",
        "phpspec/phpspec": "~2.1"
    },
    "autoload": {
        "files": [
            "app/Http/helpers.php",
            "app/Support/helpers.php"
        ],
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "pre-update-cmd": [
            "php artisan clear-compiled"
        ],
        "post-update-cmd": [
            "php artisan optimize"
        ],
        "post-root-package-install": [
            "php -r \"copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist"
    }
}

任何人都可以帮助我如何摆脱此错误并成功查看我的网站。

【问题讨论】:

    标签: php laravel-5.1 composer-php


    【解决方案1】:

    问题可能源于您的供应商文件夹(包括所有已安装的供应商软件包)中尚未(尚未)下载的软件包 在这种情况下,composer dump-autoload -o 无法解决您的问题。

    检查你 composer.jsoncomposer.lock

    我从 GIT 存储库将 main 添加到我的分支中。

    composer.jsoncomposer.lock 不匹配!

    解决方案是从 main 中恢复 composer.jsoncomposer.lock 并手动从我的分支中读取所有更改。

    只是为了确保我也删除了我的 vendor 文件夹。

    运行composer install(重新)安装存储在composer.lock中的所有包并添加所有(较新的)尚未安装的包。

    请注意,运行 composer update 可能会解决问题,但也会更新可能未更新的软件包。

    【讨论】:

      【解决方案2】:

      我找到了解决方案,在我的路线中我没有准确地调用控制器的名称

      例子:

      Route::get('/endpoint', 'Namebadcontroller@function');
      
      // Correct name of route
      Route::get('/endpoint', 'NameBadController@function');
      

      并运行以下命令:

      作曲家转储-自动加载-o

      php artisan clear-compiled php工匠优化

      【讨论】:

        【解决方案3】:

        删除供应商文件,然后运行composer update

        【讨论】:

          【解决方案4】:

          删除bootstrap/cache/中的所有文件然后运行:

          composer dump-autoload -o

          【讨论】:

            【解决方案5】:

            尝试命令composer dump-autoload -o

            我用它来解决这个问题:'Uncaught ReflectionException'。

            祝你好运!

            【讨论】:

            • 哇。感谢您将其标准化。我是一名初级程序员。
            【解决方案6】:

            我遇到了类似的问题。我发现要真正深入研究这个问题,您需要修改 Illuminate/Container/Container.php 文件,如倒数第三个 here 建议的那样。

            <?php
            
            namespace {
                use Monolog\Logger as Monolog;
                class log extends Illuminate\Log\Writer {
                    function __construct()
                    {
                        $this->monolog = new Monolog("local");
                    }
                }
            }
            
            namespace Illuminate\Container {
            
                use Closure;
                use ArrayAccess;
                use ReflectionClass;
                use ReflectionMethod;
                use ReflectionFunction;
                use ReflectionParameter;
                use InvalidArgumentException;
                use Illuminate\Contracts\Container\Container as ContainerContract;
                use Illuminate\Contracts\Container\BindingResolutionException as BindingResolutionContractException;
            
            
                class Container implements ArrayAccess, ContainerContract
                {
            

            按照代码建议修改它,并在底部添加一个额外的右括号。这将允许它显示原本无法显示的错误,从而能够解决您的问题!

            【讨论】:

              猜你喜欢
              • 2015-06-20
              • 2021-12-10
              • 2020-01-03
              • 2022-11-11
              • 1970-01-01
              • 2017-09-11
              • 2016-10-28
              • 2018-01-03
              • 2018-03-09
              相关资源
              最近更新 更多