php - 如何在 Symfony 服务中注入一组参数?
问题描述
我正在尝试注入一些树枝视图作为自定义邮件服务的模板,该服务将用作另一个服务的依赖项。
我不明白为什么,但就像 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 中设置使用/调用参数。
推荐阅读
- php - 如何将元字段或文本从 Woo 购物车页面发送到准备好的订单?
- c# - 如何最小化文件搜索运行时的复杂性?
- ios - 谷歌地图无法在 iOS 中加载
- reactjs - 如何使用反应检查两个属性是否未在对象数组中定义?
- html - 引导表中的所有单元格都加粗
- ruby-on-rails - 如何在数据库中有默认值但在表单输入中没有
- cucumber - 在 Cucumber Serenity 框架中运行多个标签是否正确?
- angular - Angular ngx-spinner 未显示
- c# - 将数据库行的 ViewBag 更改为 ViewData
- sql - 如何在 BOM 类型层次结构中获取父级的所有叶子