在Laravel 5.8中,composer require laravel/passport命令无法正常工作。

14

我正在使用Laravel 5.8,尽管6.0.3可用。 我使用它是因为我正在跟随的教程正在使用Laravel 5.8。

当我执行命令时:

composer require laravel/passport

它会抛出一个错误

无法将您的要求解析为可安装的软件包集。

问题 1 - 结论:删除laravel/framework v5.8.35 - 结论:不安装laravel/framework v5.8.35 - laravel/passport 8.x-dev需要illuminate/encryption ^6.0|^7.0 → 可满足于illuminate/encryption[6.x-dev、7.0.x-dev、v6.0.0、v6.0.1、v6.0.2、v6.0.3、v6.0.4、v6.1.0、v6.2.0、v6.3.0、v6.4.1]。 - laravel/passport v8.0.0需要illuminate/encryption ^6.0|^7.0 → 可满足于illuminate/encryption[6.x-dev、7.0.x-dev、v6.0.0、v6.0.1、v6.0.2、v6.0.3、v6.0.4、v6.1.0、v6.2.0、v6.3.0、v6.4.1]。 - 不要安装illuminate/encryption 6.x-dev | 不要安装laravel/framework v5.8.35 - 不要安装illuminate/encryption 7.0.x-dev | 不要安装laravel/framework v5.8.35 - 不要安装illuminate/encryption v6.0.0 | 不要安装laravel/framework v5.8.35 - 不要安装illuminate/encryption v6.0.1 | 不要安装laravel/framework v5.8.35 - 不要安装illuminate/encryption v6.0.2 | 不要安装laravel/framework v5.8.35 - 不要安装illuminate/encryption v6.0.3 | 不要安装laravel/framework v5.8.35 - 不要安装illuminate/encryption v6.0.4 | 不要安装laravel/framework v5.8.35 - 不要安装illuminate/encryption v6.1.0 | 不要安装laravel/framework v5.8.35 - 不要安装illuminate/encryption v6.2.0 | 不要安装laravel/framework v5.8.35 - 不要安装illuminate/encryption v6.3.0 | 不要安装laravel/framework v5.8.35 - 不要安装illuminate/encryption v6.4.1 | 不要安装laravel/framework v5.8.35 - 安装请求为laravel/framework(锁定在v5.8.35,需要为5.8.*)→ 可满足于laravel/framework [v5.8.35]。 - 安装请求为laravel/passport ^8.0 → 可满足于laravel/passport[8.x-dev、v8.0.0]。

安装失败,将./composer.json还原为其原始内容。

5个回答

47

Laravel Passport的最新版本不再支持Laravel 5.8

请安装早期版本

composer require laravel/passport:7.5.1

来自Laravel Passport的发布说明

已更改

  • 重新设计HandlesOAuthErrors trait为中间件 (#937)
  • 对OAuth错误使用可渲染异常 (#1066)
  • 使用diactoros 2.0和psr-http-factory (aadf603)
  • 用Blade指令替换了helpers (#939)
  • 使用caret约束 (d906804)
  • 不再支持 Laravel 5.8 (654cc09)
  • 不再支持PHP 7.1 (3c830ac)
  • 升级到league/oauth2-server 8.0(97e3026)

收到以下警告:来自 https://repo.packagist.org 的警告:您正在使用过时的 Composer 版本。现在可用的是 Composer 2.0,您应该升级。请参阅 https://getcomposer.org/2,并且 Passport 也没有安装。 - Mohamed Raza
出现以下错误:[Composer\Downloader\TransportException] 无法下载"http://repo.packagist.org/p/laravel/passport%24a752029de59be2bf80a8a2966ee5874c6f74fc8c5a3d3cd6127a9849bb08b5cc.json"文件: php_network_getaddresses: getaddrinfo failed: No such host is known. 无法打开流: php_network_getaddresses: getaddrinfo failed: No such host is known. - Mohamed Raza
这对我有用 composer require laravel/passport:^9.0 - Silah Kosgei

11

使用选项 --with-all-dependencies 安装,它将升级、降级和删除锁定到特定版本的软件包

composer require laravel/passport --with-all-dependencies


这个对我在Laravel 9.34.0版本上有效。 - Billa

5
你可以使用此命令在 Laravel 5.8 项目中安装护照(passport):composer require laravel/passport "7.5.1" 或者你可以将护照包含在 composer 依赖项中:
"require": {
    ...
    "laravel/passport": "7.5.1",
    ....
}

然后运行composer update。两者都会在您的项目中安装passport。


3

composer require laravel/passport可以在最新版本的laravel上运行。

你需要根据你当前使用的Laravel版本下载相应版本的Passport。

为了解决这个问题,前往Laravel文档并选择你当前正在运行的版本,然后进入Passport,它会显示适合你的Laravel版本安装的Passport版本。


好的解决方案@kp85..我在我的Laravel 7中遇到了很多包的同样问题。我根据Laravel文档中给出的命令更新了它们。 - Rajat Jain
对于 Laravel 6 文档,他们没有指定 Passport 的版本。 - Usama

3

尝试使用此命令进行安装

composer require laravel/passport --with-all-dependencies

它会运作!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接