如何将 security.yml 中的设置注入到服务中?

发布于 2024-12-13 15:37:54 字数 612 浏览 0 评论 0原文

我有一个自定义服务,我想将 check_path (来自 app/config/security.yml)设置的值注入其中。在我的服务定义中,我尝试使用

arguments:
  check_path: %security.firewalls.main.form_login.check_path%

但导致此错误:

服务“myService”依赖于不存在的参数 “security.firewalls.main.form_login.check_path”。

有谁知道如何让它发挥作用?

编辑
有一个解决方法,我可以首先在 parameters.ini 中定义一个变量,然后在 security.yml 中使用它并将其注入到我的服务中,但我想避免这种情况。需要在 parameters.ini 中“重新声明”变量似乎可能会变得混乱,特别是如果我稍后需要从 security.yml 注入更多设置。我不想每次需要发生这种情况时都必须在parameters.ini 中定义某些内容。

I have a custom service and I want to inject the value of the check_path (from app/config/security.yml) setting into it. In my service definition I tried using

arguments:
  check_path: %security.firewalls.main.form_login.check_path%

but that results in this error:

The service "myService" has a dependency on a non-existent parameter
"security.firewalls.main.form_login.check_path".

Does anyone know how to get this to work?

Edit
There's a work around where I can first define a variable in parameters.ini and then use it in security.yml and inject it into my service, but I'd like to avoid that. Needing to 'redeclare' variables in parameters.ini seems like it could get messy, especially if I later need to inject even more settings from security.yml. I wouldn't want to have to define something in parameters.ini each time this needs to happen.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

茶底世界 2024-12-20 15:37:54

将其添加到您的 parameters.yml(或 parameters.ini - 然后使用 = 而不是 :)文件中:

login.check_path: /your/path/here

然后转到您的 security.yml 并执行以下操作:

form_login:
    check_path: %login.check_path%

然后使用它作为您的参数:

arguments: [ %login.check_path% ]

Add this to your parameters.yml (or parameters.ini — then use = instead of :) file:

login.check_path: /your/path/here

Then go to your security.yml and do this:

form_login:
    check_path: %login.check_path%

Then use this as your argument:

arguments: [ %login.check_path% ]
故人的歌 2024-12-20 15:37:54

我不是 100% 确定,也许其他人可以确认,但尝试 @security.firewalls.main.form_login.check_path (用 @ 而不是引号来引用配置和服务)?

I'm not 100% sure, maybe someone else can confirm, but try @security.firewalls.main.form_login.check_path (with the @ instead of quotes to reference config and services)?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文