如何从安全性注入设置.将Yml转换为服务



我有一个自定义服务,我想将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中定义一些东西

将此添加到您的parameters.yml(或parameters.ini -然后使用=代替:)文件:

login.check_path: /your/path/here

然后去你的security.yml,这样做:

form_login:
    check_path: %login.check_path%

然后用这个作为你的参数:

arguments: [ %login.check_path% ]

我不是100%确定,也许其他人可以确认,但试试@security.firewall .main.form_login。Check_path(用@代替引号引用配置和服务)?

最新更新