Intereting Posts
Использование случайной соли sha512 с паролем sha512 Как запланировать выполнение скрипта PHP на стороне сервера? Как бороться с предупреждением «метод не найден в классе» для магически реализованных методов? запуск кода matlab из php Отображать повторяющиеся даты из базы данных SQL с помощью PHP Как добавить значения REQUEST к методу HTTP POST с помощью multipart для загрузки файла на PHP-сервер в Android? Как передать вариантный тип объекта 16396 в методе COM, для которого требуется входное значение VT_VARIANT Как добавить поле загрузки в сообщение пользователя в wordpress Вызов функции класса ONE из класса TWO без расширения? Резервное копирование базы данных MySql с помощью PHP неожиданное «использование» (T_USE) при попытке использовать композитор Несколько динамических Highcharts на одной странице с json Как я могу получить имя скрипта, вызывающего функцию? как передать строку запроса в ошибке ошибки 404 через .htaccess? Плюсы / минусы использования index.php? Q = путь / вместо index.php / path / при маршрутизации URL-адресов?

Как добавить массив со значениями в конфигурации Symfony2?

Я хотел бы добавить простой список значений в файлы конфигурации (config.yml). Например :

my_bundle: columns: ["col1", "col2"] 

При добавлении узла в парсер конфигурации он просто терпит неудачу:

 $rootNode = $treeBuilder->root('my_bundle'); $rootNode->arrayNode('columns')->children()->end(); 

Вот ошибка:

 InvalidConfigurationException: Unrecognized options "0, 1" under "my_bundle.columns" 

Что мне не хватает? Возможно ли это?

Если вы хотите создать такой узел, просто выполните:

 $rootNode ->children() ->arrayNode('columns') ->prototype('scalar') ->end() ->end() ->end() ; 

Я думаю, что вам не хватает того, что YaML не является языком разметки, это даже не langauge как таковой (это стандарт сериализации данных), поэтому он не знает каких-либо языковых конструкций, например массивов. Его основным «инструментом» для выражения группировки и отношений между битами данных является пробел, двоеточия и тире.
На странице документации Symfony формата YaML :

 my_bundle: columns: - col1 - col2 

Как я понимаю из этого раздела:

Файл YAML редко используется для описания простого скаляра. В большинстве случаев он описывает коллекцию. Коллекция может быть последовательностью или отображением элементов. Обе последовательности и сопоставления преобразуются в массивы PHP.

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

- PHP

- Perl

- Python

Предыдущий файл YAML эквивалентен следующему PHP-коду:

 array('PHP', 'Perl', 'Python');