繁体   English   中英

如何在Symfony服务中注入参数数组?

[英]How to inject an array of parameters in Symfony service?

我试图注入一些树枝视图作为自定义邮件服务的模板,该服务将被另一个服务用作依赖项。

我不知道为什么,但是就像Symfony没看到我要在$ parameters中注入的参数。

将这个服务数组作为参数注入的正确方法是什么?

这是services.yaml部分:


parameters:
    locale: 'en'
    template: '%fos_user.registration.confirmation.template%'
    resetting: '%fos_user.resetting.email.template%'
    from_email: 'somemail@mail.com'
    confirmation: '%fos_user.registration.confirmation.from_email%'
    resetting_password: '%fos_user.resetting.email.from_email%'

services:

    user.mailer.rest:
        class: App\Mailer\RestMailer
        public: false
        parent: fos_user.mailer.twig_swift
        autoconfigure: false
        autowire: true
        arguments:
            $parameters:
              - '@template'
              - '@resetting'

RestMailer服务构造函数:

public function __construct(\Swift_Mailer $mailer, UrlGeneratorInterface $router, \Twig_Environment $twig, array $parameters)
  {
    $this->mailer = $mailer;
    $this->router = $router;
    $this->twig = $twig;
    $this->parameters = $parameters;
  }

  public function sendConfirmationEmailMessage(UserInterface $user)
  {
    $template = $this->parameters['template']['confirmation'];
//...

这是返回的错误:

在DefinitionErrorExceptionPass.php第54行中:

无法自动装配服务“ App \\ Mailer \\ RestMailer”:方法“ __construct()”的参数“ $ parameters”带有类型提示的“数组”,您应显式配置其值。

您是否已经在services.yml中进行了配置?

如果要使用config.yml中的参数,则必须在services.yml中进行设置以使用/调用参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM