【问题标题】:Service not recognized by SymfonySymfony 无法识别服务
【发布时间】:2023-03-24 20:48:01
【问题描述】:

我对我项目中的以下服务有疑虑:

app.security.guardAuthenticatorLoginPassword:
      class: AppBundle\Security\LoginPasswordAuthenticator
      arguments: ["@router"]
app.jwt_token_authenticator:
      class: AppBundle\Security\JwtAuthenticator
      arguments: ['@doctrine.orm.entity_manager', '@lexik_jwt_authentication.encoder']

我觉得无论我做什么我的程序都不认可..

我已经找了几个小时了,但我不明白为什么它不起作用。虽然我在指定路径中有我的 LoginPasswordAuthenticator 和 JwtAuthenticator 类..

提前感谢您的帮助

【问题讨论】:

  • “服务无法识别”到底是什么意思?你有错误信息吗?
  • 也许你应该清除缓存?

标签: symfony lexikjwtauthbundle


【解决方案1】:

以下是一些潜在问题:
_ 清除缓存
_ 检查您是否忘记了不同课程的“使用”
_ 给你的服务一个名字(为什么不给一个别名)并在你调用你的服务时使用它:

app.security.guardAuthenticatorLoginPassword:
  class: AppBundle\Security\LoginPasswordAuthenticator
  arguments: ["@router"]
  tags:
      - { name: login.password.authenticator, alias: login.auth }

app.jwt_token_authenticator:
  class: AppBundle\Security\JwtAuthenticator
  arguments:['@doctrine.orm.entity_manager','@lexik_jwt_authentication.encoder']
  tags:
      - { name: security.authenticator, alias: security.auth }

【讨论】:

  • 您是在暗示标签与别名有关吗?两个完全不同的概念。
  • 我只是给出一些潜在的问题。当我使用名称(此处为“app.jwt_token_authenticator”)时,我也遇到了无法识别的服务的问题,但是当我设置别名并使用它时,它起作用了。因此,尝试它无需任何费用。
  • 如果你这么说。是的,您可以向标签添加自定义属性,我想您可以拥有一个称为别名的属性。但是除非您更新编译器传递以使用自定义标记,否则这是浪费精力。尤其是具有不同名称的标签。不要残忍,但看起来你的答案只是问题的复制/粘贴。没有增值。
猜你喜欢
  • 1970-01-01
  • 2011-06-13
  • 2015-12-12
  • 2017-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-04
  • 2019-10-14
相关资源
最近更新 更多