Composer报错:Invalid argument supplied for foreach()

我在我的Laravel项目执行composer install或者composer update的时候就会报错:

Loading composer repositories with package information
Updating dependencies

  [ErrorException]                         
  Invalid argument supplied for foreach()  

Exception trace:
 () at phar:///var/composer.phar/src/Composer/Repository/ComposerRepository.php:385
 Composer\Util\ErrorHandler::handle() at phar:///var/composer.phar/src/Composer/Repository/ComposerRepository.php:385
 Composer\Repository\ComposerRepository->whatProvides() at phar:///var/composer.phar/src/Composer/DependencyResolver/Pool.php:213
 Composer\DependencyResolver\Pool->computeWhatProvides() at phar:///var/composer.phar/src/Composer/DependencyResolver/Pool.php:202
 Composer\DependencyResolver\Pool->whatProvides() at phar:///var/composer.phar/src/Composer/DependencyResolver/RuleSetGenerator.php:173
 Composer\DependencyResolver\RuleSetGenerator->whitelistFromPackage() at phar:///var/composer.phar/src/Composer/DependencyResolver/RuleSetGenerator.php:153
 Composer\DependencyResolver\RuleSetGenerator->allowListFromPackage() at phar:///var/composer.phar/src/Composer/DependencyResolver/RuleSetGenerator.php:322
 Composer\DependencyResolver\RuleSetGenerator->whitelistFromJobs() at phar:///var/composer.phar/src/Composer/DependencyResolver/RuleSetGenerator.php:309
 Composer\DependencyResolver\RuleSetGenerator->allowListFromJobs() at phar:///var/composer.phar/src/Composer/DependencyResolver/RuleSetGenerator.php:373
 Composer\DependencyResolver\RuleSetGenerator->getRulesFor() at phar:///var/composer.phar/src/Composer/DependencyResolver/Solver.php:217
 Composer\DependencyResolver\Solver->solve() at phar:///var/composer.phar/src/Composer/Installer.php:489
 Composer\Installer->doInstall() at phar:///var/composer.phar/src/Composer/Installer.php:232
 Composer\Installer->run() at phar:///var/composer.phar/src/Composer/Command/InstallCommand.php:122
 Composer\Command\InstallCommand->execute() at phar:///var/composer.phar/vendor/symfony/console/Command/Command.php:245
 Symfony\Component\Console\Command\Command->run() at phar:///var/composer.phar/vendor/symfony/console/Application.php:835
 Symfony\Component\Console\Application->doRunCommand() at phar:///var/composer.phar/vendor/symfony/console/Application.php:185
 Symfony\Component\Console\Application->doRun() at phar:///var/composer.phar/src/Composer/Console/Application.php:281
 Composer\Console\Application->doRun() at phar:///var/composer.phar/vendor/symfony/console/Application.php:117
 Symfony\Component\Console\Application->run() at phar:///var/composer.phar/src/Composer/Console/Application.php:113
 Composer\Console\Application->run() at phar:///var/composer.phar/bin/composer:61
 require() at /var/composer.phar:24


install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-suggest] [--no-dev] [--no-autoloader] [--no-scripts] [--no-progress] [--no-install] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--ignore-platform-req IGNORE-PLATFORM-REQ] [--ignore-platform-reqs] [--] [<packages>]...

以下是我的 composer.json:

{
    "name": "laravel/lumen",
    "description": "The Laravel Lumen Framework.",
    "keywords": ["framework", "laravel", "lumen"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=7.2",
        "doctrine/dbal": "^2.10",
        "hhxsv5/laravel-s": "^3.7",
        "illuminate/contracts": "^7.26",
        "illuminate/cookie": "^7.26",
        "illuminate/redis": "^7.26",
        "illuminate/routing": "^7.26",
        "irazasyed/larasupport": "^1.6",
        "laravel/helpers": "^1.3",
        "laravel/lumen-framework": "^7.2",
        "laravel/tinker": "^2.4",
        "mmghv/lumen-route-binding": "^1.5",
        "spatie/laravel-permission": "^3.16",
        "summergeorge/ali-oss-storage": "^2.1",
        "tymon/jwt-auth": "^1.0",
        "vlucas/phpdotenv": "^4.1",
        "laravel/scout": "^8.3"
    },
    "require-dev": {
        "beyondcode/laravel-dump-server": "^1.4",
        "fzaninotto/faker": "^1.9",
        "overtrue/laravel-query-logger": "^1.2",
        "phpunit/phpunit": "^9.1"
    },
    "autoload": {
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/"
        ]
    },
    "scripts": {
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ]
    },
    "config": {
        "preferred-install": "dist",
        "sort-packages": true,
        "optimize-autoloader": true
    },
    "minimum-stability": "dev",
    "prefer-stable": true
}

在有lock的时候,只有update会报错,install不会,然后我把lock删掉了,现在两个命令都会报错。请问大家知道如何解决吗?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

Don't use composer update unless you know what the consequences are.

3年前 评论

composer self-update 再试试

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!