安装 sanctum 时 Laravel Composer 错误:与合同冲突
Posted
技术标签:
【中文标题】安装 sanctum 时 Laravel Composer 错误:与合同冲突【英文标题】:Laravel Composer error while install sanctum: conflict with contracts 【发布时间】:2021-07-06 20:39:45 【问题描述】:我在 composer 安装 laravel sanctum 时遇到这个错误
您的要求无法解决为一组可安装的软件包。 问题 1 - laravel/sanctum[v2.9.0, ..., 2.x-dev] 需要照明/合同 ^6.9|^7.0|^8.0 -> 找到照明/合同[v6.10.0, ..., 6.x-开发,v7.0.0,...,7.x-dev,v8.0.0,...,8.x-dev] 但这些没有加载,可能是因为它与另一个需求冲突。 - 根 composer.json 需要 laravel/sanctum ^2.9 -> 可由 laravel/sanctum[v2.9.0, ..., 2.x-dev] 满足。
我尝试通过
安装 laravel 合约composer require illuminate/contracts
但得到这个错误
您的需求无法解决为一组可安装的软件包。
问题 1 - 根 composer.json 需要Illumination/contracts ^8.36,找到了Illumination/contracts[v8.36.0, v8.36.1, v8.36.2, 8.x-dev] 但这些没有加载,可能是因为它与 另一个要求。
作曲家.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"
]
【问题讨论】:
在这里向我们展示您的 composer.json 文件。是否还有其他错误(问题)。 请分享更多细节。composer why-not illuminate/contracts 8.36.2
打印什么?
@NicoHaase 我添加了 composer.json
【参考方案1】:
laravel/framework
固定在 v5.8 上,laravel/sanctum
不兼容。它至少需要 Laravel v6
【讨论】:
【参考方案2】:你使用的是不支持laravel/sanctum
的laravel版本 "laravel/framework": "5.8.*"
按照指南enter link description here 尝试将您的项目至少升级到laravel/framework": "7.0.*
然后运行$composer update
【讨论】:
请不要重复已有的答案,除非你想添加新的东西【参考方案3】:您需要兼容版本的 'illuminate/contracts' 并且显然这个包存在于您的项目中。 检查 'composer.json' 文件并修复 'illuminate/contracts' 适合 'laravel/sanctum' 和 laravel 版本。
【讨论】:
请分享更多细节 - 究竟应该做什么?正如第二条错误消息所说,illuminate/contracts
无法安装以上是关于安装 sanctum 时 Laravel Composer 错误:与合同冲突的主要内容,如果未能解决你的问题,请参考以下文章
Sanctum Laravel 8 用于 API 身份验证的问题(不会在注销时删除令牌)
使用 nuxtjs 登录 laravel sanctum 后出现 401(未验证)错误
当页面更新时,数据被删除 - vue 和 laravel sanctum