我在查看我的网站时遇到以下错误。
我的错误:
致命错误:未捕获的反射异常:类日志不存在 /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行
我的作曲家.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"
}
}
任何人都可以帮助我如何摆脱此错误并成功查看我的网站。
删除bootstrap/cache/
中的所有文件,然后运行:
composer dump-autoload -o
我也有类似的问题。我发现要真正深入研究这个问题,您需要修改 Illuminate/Container/Container.php 文件,如顶部第三个建议的那样。
<?php
namespace {
use MonologLogger as Monolog;
class log extends IlluminateLogWriter {
function __construct()
{
$this->monolog = new Monolog("local");
}
}
}
namespace IlluminateContainer {
use Closure;
use ArrayAccess;
use ReflectionClass;
use ReflectionMethod;
use ReflectionFunction;
use ReflectionParameter;
use InvalidArgumentException;
use IlluminateContractsContainerContainer as ContainerContract;
use IlluminateContractsContainerBindingResolutionException as BindingResolutionContractException;
class Container implements ArrayAccess, ContainerContract
{
按照代码建议对其进行修改,并在底部添加一个额外的右括号。这将允许它显示否则无法显示的错误,从而能够解决您的问题!
删除供应商文件,然后运行composer update
我找到了解决方案,在我的路由中我没有准确调用控制器的名称
例:
Route::get('/endpoint', 'Namebadcontroller@function');
// Correct name of route
Route::get('/endpoint', 'NameBadController@function');
并运行以下命令:
作曲家转储自动加载 -o
PHP 工匠清晰编译PHP 工匠优化
问题可能源于尚未下载到供应商文件夹中的软件包(包含所有已安装的供应商软件包)在这种情况下,composer dump-autoload -o
无法解决您的问题。
检查你composer.json
和composer.lock
。
我将 main 从 GIT 存储库添加到我的分支中。
composer.json
和composer.lock
不匹配!
解决方案是从main恢复composer.json
和composer.lock
,并手动从我的分支重新添加所有更改。
只是为了确保我还删除了我的vendor
文件夹。
运行composer install
(重新)安装了存储在composer.lock中的所有软件包,并添加了所有(较新的)尚未安装的软件包。
请注意,运行 composer update
可能会解决此问题,但 alse 会更新可能无法更新的包。
尝试命令composer dump-autoload -o
。
我用它来克服这个问题:"未捕获的反射异常"。
祝你好运!