【问题标题】:Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory' not found Laravel passportSymfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory' 未找到 Laravel 护照
【发布时间】:2020-07-18 11:22:21
【问题描述】:

大家好,我正在使用 sfelix-martins/passport-multiauth 基于 laravel 护照

  • 我收到此错误
{message: "Class 'Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory' not found",…}
message: "Class 'Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory' not found"
exception: "Error"
file: "/app/vendor/smartins/passport-multiauth/src/Facades/ServerRequest.php"
line: 17
trace: [,…]
  • 这是我的作曲家
"require": {
    "php": "^7.2.5",
    "fideloper/proxy": "^4.2",
    "fruitcake/laravel-cors": "^1.0",
    "guzzlehttp/guzzle": "^6.5",
    "laravel/framework": "^7.0",
    "laravel/tinker": "^2.0",
    "laravel/ui": "^2.0",
    "smartins/passport-multiauth": "^6.0",
    "symfony/psr-http-message-bridge": "^2.0"
},

注意:当我将这个文件 (DiactorosFactory.php) 放在我旧的 laravel 项目的目录中时 效果很好。

【问题讨论】:

  • 遇到同样的问题

标签: php laravel authentication package laravel-passport


【解决方案1】:

如您在 Readme.md 中所见:https://github.com/symfony/psr-http-message-bridge/blob/26068fa40d91305529cb168997c0b528bb6eef07/CHANGELOG.md

使用 DiactorosFactory 已被弃用,并在 2.0.0 版中被移除

Deprecated DiactorosFactory, use PsrHttpFactory instead

您将在此处找到如何在您的代码中替换它的解决方案: https://github.com/sfelix-martins/passport-multiauth/pull/123/files#diff-b37981c79b4592847e664547ec085670454b57df4d701cd6218930b55169930fR17-R24

你可以在这里找到如何使用新东西的官方文档: https://symfony.com/doc/current/components/psr7.html#usage

【讨论】:

  • 这些链接将来可能会损坏。您还可以在答案中添加必要的信息吗?
【解决方案2】:

看起来该软件包在其下一个版本 (7.0) 中解决了该问题。如果您升级到最新版本,这将解决您的问题。

如果您无法升级该软件包,那么您的另一个选择是将symfony/psr-http-message-bridge 降级到版本^2.0。这也会将laravel/passport 降级到版本 8.4.0。

【讨论】:

    猜你喜欢
    • 2019-02-05
    • 2018-07-15
    • 1970-01-01
    • 2018-04-18
    • 2021-11-20
    • 2017-07-27
    • 2019-08-10
    • 2019-05-18
    • 2019-04-17
    相关资源
    最近更新 更多