[英]Call to undefined method App\Console\Kernel::load() - Laravel 5.4
我將我的應用程序從5.5 to 5.4
降級5.5 to 5.4
,運行php artisan serve
時出現此錯誤
調用未定義的方法App \\ Console \\ Kernel :: load()-Laravel 5.4
查看其他解決方案,我運行composer dump-autoload
來解決此問題,但該問題仍然存在。 同樣的錯誤。 我真的不知道這是否是由下面的composer.json文件中的包引起的
我現在該怎么解決?
提前致謝
Composer.Json
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=5.6.4",
"barryvdh/laravel-dompdf": "0.8.*",
"fideloper/proxy": "~4.0",
"guzzle/guzzle": "~3.0",
"laravel/framework": "5.4.*",
"laravel/passport": "^3.0",
"laravel/tinker": "~1.0",
"laravelcollective/html": "~5.0",
"maatwebsite/excel": " ~2.1.0",
"pda/pheanstalk": "~2.0",
"picqer/php-barcode-generator": "^0.2.0",
"spatie/laravel-permission": "^2.12",
"yajra/laravel-datatables-oracle": "~8.0"
},
"require-dev": {
"filp/whoops": "~2.0",
"nunomaduro/collision": "~1.1",
"fzaninotto/faker": "~1.4",
"mockery/mockery": "~1.0",
"phpunit/phpunit": "~7.0",
"symfony/thanks": "^1.0"
},
"autoload": {
"classmap": [
"database/seeds",
"database/factories",
"app/commands",
"app/models",
"app/database/seeds",
"app/tests/TestCase.php"
],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
}
},
"extra": {
"laravel": {
"dont-discover": [
]
}
},
"scripts": {
"post-root-package-install": [
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"@php artisan key:generate"
],
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover"
]
},
"config": {
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true
},
"minimum-stability": "dev",
"prefer-stable": true
}
問題是您不能確保將代碼更新為與Laravel 5.4兼容。
在Laravel 5.5+隨附的Kernel.php
樣板中,
$this->load(__DIR__.'/Commands');
在5.5中添加了此命令,以自動檢測app / Console / Commands目錄中的任何命令。
為了使此代碼在5.4中起作用,您需要刪除該行並在同一文件中protected $commands = [ ]
數組下手動注冊所有命令。
如果您想嘗試對其進行調整並將其放入自己的庫中,則load
的源代碼位於https://github.com/laravel/framework/blob/5.5/src/Illuminate/Foundation/Console/Kernel.php#L196中Kernel.php
運行composer install
命令后刪除供應商文件夾和composer.lock文件
轉到your_project / app / Console / Kernel.php並刪除行
$ this-> load( DIR 。'/ Commands');
在commands()函數中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.