Laravel 安装 sanctum 时出现 Composer 错误:与合同冲突

Laravel Composer error while install sanctum: conflict with contracts

安装 laravel sanctum by composer

时出现此错误

Your requirements could not be resolved to an installable set of packages. Problem 1 - laravel/sanctum[v2.9.0, ..., 2.x-dev] require illuminate/contracts ^6.9|^7.0|^8.0 -> found illuminate/contracts[v6.10.0, ..., 6.x-dev, v7.0.0, ..., 7.x-dev, v8.0.0, ..., 8.x-dev] but these were not loaded, likely because it conflicts with another require. - Root composer.json requires laravel/sanctum ^2.9 -> satisfiable by laravel/sanctum[v2.9.0, ..., 2.x-dev].

我尝试通过

安装laravel个合同
composer require illuminate/contracts

但是出现这个错误

Your requirements could not be resolved to an installable set of packages.

Problem 1 - Root composer.json requires illuminate/contracts ^8.36, found illuminate/contracts[v8.36.0, v8.36.1, v8.36.2, 8.x-dev] but these were not loaded, likely because it conflicts with another require.

Composer.json

{
"name": "laravel/laravel",
"type": "project",
"description": "The Laravel Framework.",
"keywords": [
    "framework",
    "laravel"
],
"license": "MIT",
"require": {
    "php": "^7.1.3",
    "darkaonline/l5-swagger": "5.8.*",
    "fideloper/proxy": "^4.0",
    "fruitcake/laravel-cors": "^2.0",
    "iatstuti/laravel-cascade-soft-deletes": "1.0.*",
    "laravel/framework": "5.8.*",
    "laravel/tinker": "^1.0",
    "laravelcollective/html": "^5.2.0",
    "morilog/jalali": "3.*",
    "niklasravnsborg/laravel-pdf": "^3.1",
    "nwidart/laravel-modules": "^5.1",
    "predis/predis": "^1.1",
    "shetabit/payment": "^2.1",
    "ext-json": "*"
},
"require-dev": {
    "beyondcode/laravel-dump-server": "^1.0",
    "filp/whoops": "^2.0",
    "fzaninotto/faker": "^1.4",
    "mockery/mockery": "^1.0",
    "nunomaduro/collision": "^3.0",
    "phpunit/phpunit": "^7.5"
},
"config": {
    "optimize-autoloader": true,
    "preferred-install": "dist",
    "sort-packages": true
},
"extra": {
    "laravel": {
    "dont-discover": []
    }
},
"autoload": {
    "psr-4": {
    "App\": "app/",
    "Modules\": "Modules/"
    },
    "classmap": [
    "database/seeds",
    "database/factories"
    ]
},
"autoload-dev": {
    "psr-4": {
    "Tests\": "tests/"
    }
},
"minimum-stability": "dev",
"prefer-stable": true,
"scripts": {
    "post-autoload-dump": [
    "Illuminate\Foundation\ComposerScripts::postAutoloadDump",
    "@php artisan package:discover --ansi"
    ],
    "post-root-package-install": [
    "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
    "@php artisan key:generate --ansi"
    ]
}
}

您需要 'illuminate/contracts' 的兼容版本,显然这个包存在于您的项目中。 检查 'composer.json' 文件并修复 'illuminate/contracts' 适合 'laravel/sanctum' 和 laravel 版本。

laravel/framework 固定到 v5.8,laravel/sanctum 与之不兼容。它至少需要 Laravel v6

您使用的 laravel 版本 "laravel/framework": "5.8.*" 不支持 laravel/sanctum

尝试按照指南 enter link description here

至少将您的项目升级到 laravel/framework": "7.0.*

然后运行$composer update