bugfix> json > 投稿

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は順序を変更します。これを防ぐ方法はありますか?

回答 1 件
  • 列挙されたバージョンのいずれかを使用すると、この動作が防止されます。

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

    JavaScriptがオブジェクトプロパティの順序を保証しますか?

あなたの答え