致命错误 Laravel:查看我的网站时未捕获 ReflectionException
Posted
技术标签:
【中文标题】致命错误 Laravel:查看我的网站时未捕获 ReflectionException【英文标题】:Fatal Error Laravel: Uncaught ReflectionException when i view my Site 【发布时间】: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"
任何人都可以帮助我如何摆脱此错误并成功查看我的网站。
【问题讨论】:
【参考方案1】:问题可能源于您的供应商文件夹(包括所有已安装的供应商软件包)中尚未(尚未)下载的软件包
在这种情况下,composer dump-autoload -o
无法解决您的问题。
检查你 composer.json
和 composer.lock
。
我从 GIT 存储库将 main 添加到我的分支中。
composer.json
和 composer.lock
不匹配!
解决方案是从 main 中恢复 composer.json
和 composer.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
按照代码建议修改它,并在底部添加一个额外的右括号。这将允许它显示原本无法显示的错误,从而能够解决您的问题!
【讨论】:
以上是关于致命错误 Laravel:查看我的网站时未捕获 ReflectionException的主要内容,如果未能解决你的问题,请参考以下文章
如何修复 PHPUnit 中的“PHP 致命错误:未捕获的 TypeError:getTest() 参数”错误
Laravel - 致命错误:未捕获的错误:找不到类'Auth'
将 laravel 5.8 升级到 6:致命错误:未捕获的 RuntimeException:尚未设置外观根
如何解决 PHP 致命错误:未捕获的错误:在 laravel 版本更新时调用未定义的方法 Illuminate\Container\Container::basePath() 错误?