Laravel 8安装Sanctum报错:无法解析可安装包依赖
解决Laravel 8安装Sanctum的依赖冲突问题
问题核心是直接执行composer require laravel/sanctum时,Composer会拉取最新的Sanctum 3.x版本,而该版本仅支持Laravel 9.21+和Laravel 10,与你当前的Laravel 8环境不兼容。
解决步骤如下:
指定适配Laravel 8的Sanctum版本安装
执行以下命令安装兼容Laravel 8的Sanctum 2.x版本:composer require laravel/sanctum:^2.152.x版本是官方为Laravel 8提供的适配版本,不会出现依赖冲突。
完成Sanctum的手动配置
因为是升级的旧项目,需要手动完成配置:- 发布Sanctum的迁移文件和配置文件:
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider" - 运行数据库迁移,创建Sanctum所需的表:
php artisan migrate - 在你的
User模型中引入HasApiTokenstrait,启用API令牌功能:use Laravel\Sanctum\HasApiTokens; class User extends Authenticatable { use HasApiTokens, Notifiable; // ... 其他模型代码 }
- 发布Sanctum的迁移文件和配置文件:
关于Laravel 8默认内置Sanctum的说明
Laravel 8确实在全新项目中默认包含Sanctum依赖,但通过Laravel Shift升级的旧项目,由于升级流程的特殊性,不会自动添加该依赖,所以需要手动安装适配版本。
内容的提问来源于stack exchange,提问作者Felix
相关产品推荐
相关产品推荐

