我试图将一些twig视图注入为自定义邮件服务的模板,这将作为另一个服务的依赖项。
我不知道为什么,但好像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" 是类型提示为 "array",您应该明确配置其值。