Doctrine json_array config неправильный порядок в ключах

У меня странная проблема с конфигурацией поля json_array.

Я настроил поле, предназначенное для хранения некоторой конфигурации. Он настроен так:

<field name = "config" type = "json_array" />

Например, у меня есть такой массив:

[
    'choices' => [
        'Other' => 'other',
        'Male' => 'male',
        'Female' => 'female'
    ]
]

Я установил свойство сущности:

$entity->setConfig($config);

И я сохраняю это в базе данных. Результат такой:

"choices": {
    "Male": "male",
    "Other": "other", 
    "Female": "female"
}

Когда я использую json_encode для того же массива, порядок не изменяется, но каким-то образом Doctrine меняет порядок. Есть ли способ предотвратить это?

Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
1
0
389
1

Ответы 1

Использование одной из перечисленных версий предотвратит такое поведение:

$v1 = [
    'choices' => [
        'Other',
        'Male',
        'Female'
    ]
];

$v2 = [
    'choices' => [
        ['label' => 'Other', 'value' => 'other'],
        ['label' => 'Male', 'value' => 'male'],
        ['label' => 'Female', 'value' => 'female']
    ]
];

Более подробную информацию вы можете найти здесь Гарантирует ли JavaScript порядок собственности объекта?

Спасибо! Это могло бы случиться, если построитель форм Symfony может обрабатывать эту структуру без исключения для выбора.

Dion Snoeijen 28.05.2018 08:30

Другие вопросы по теме