首页 > 解决方案 > 定义“参数”不支持配置键

问题描述

我正在使用 Symfony DI 组件。我正在尝试将字符串参数传递给服务构造函数,如下所示:

services:
   parameters:
        config.directory: './../../../'
   _defaults:
        public: true
   settings:
        class: Bar\Foo\Service
        arguments: ['%config.directory%']

我正在通过以下方式编译容器:

$containerBuilder = new ContainerBuilder();
$loader = new YamlFileLoader($containerBuilder, new FileLocator($dir));
$loader->load('services.yaml');
$containerBuilder->compile();

例外:

致命错误:未捕获 Symfony\Component\DependencyInjection\Exception\InvalidArgumentException:定义“参数”不支持配置键“config.directory”

标签: dependency-injectionsymfony4

解决方案


参数应与服务处于同一级别:

parameters:
    config.directory: './../../../'
services:
  _defaults:
       public: true
  settings:
       class: Bar\Foo\Service
       arguments: ['%config.directory%']

推荐阅读