PHP Symfony установка вложенных параметров в контейнере - PullRequest
0 голосов
/ 12 октября 2018

В моем приложении php symfony я получил следующее parameters.yml:

my_param: some_value
my_nested:
    param: some_value2 //4 spaces here, need to set only this param
    param2: some_value3 // this should NOT be changed

Я могу установить параметр в контейнере с помощью следующего кода:

$container->setParameter('my_param', $some_value);

он работает нормально, но мне нужно установить вложенные параметры, например:

$container->setParameter('my_nested.param', $some_value);

Я получаю сообщение об ошибке, говорящее, что он не может установить вложенный параметр.Есть идеи как это исправить?my_nested.param2 (и другие вложенные параметры здесь) не должны быть изменены.Спасибо.

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

вы можете определить значение следующим образом:

the parameters.yml:

    parameters:        
        my_param: some_value
        my_nested.param: some_value2

вы можете получить значение, как показано в вашем описании, но изменить это значение невозможно.Symfony сообщит вам об ошибке:

Невозможно вызвать set () для замороженного ParameterBag.

0 голосов
/ 12 октября 2018

Вам нужно использовать массивоподобную структуру, например:

$container->setParameter('my_nested', [
  'param' => $some_value_2,
]);

Посмотрите здесь: https://symfony.com/doc/current/service_container/parameters.html

Пример изменения вложенного параметра:

$container->setParameter('my_nested', [
  'top' => [
    'nested' => 'a',
  ]
]);

$parameter = $container->getParameter('my_nested');
$parameter['top']['nested'] = 'b';

$container->setParameter('my_nested', $parameter);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...