首页 > 解决方案 > 拉拉维尔 5.8 。为什么保存到Mysql时,json列中键的顺序会发生变化

问题描述

为什么保存到 Mysql 中 JSON 列中的键顺序会发生变化?这是创建用户时键的顺序:

$user->emailNotifications()->create([
            'settings' =>
                [
                    "orders"        => [
                        "paid"    => false,
                        "snipped" => false,
                    ],
                    "store_actions" => [
                        "added"               => false,
                        "deleted"             => false,
                        "transferred_license" => false,
                    ],
                    "billing"       => [
                        "changed_cycle"  => false,
                        "failed_payment" => false,
                    ],
                    "products"      => [
                        "deactivated" => false,
                    ],
                ],
        ]);

但以不同的顺序存储在数据库中:

"orders": {
  "paid": true,
  "snipped": true
},
"billing": {
  "changed_cycle": false,
  "failed_payment": false
},
"products": {
  "deactivated": false
},
"store_actions": {
  "added": false,
  "deleted": false,
  "transferred_license": false
}

可能是什么问题呢?

标签: mysqllaravel-5

解决方案


推荐阅读