数据库中的json列包含如下数据:

{"data": {"total":15,"time":25}}

这是我要在其中更新的数据:

{"total":22,"time":5}

但通过Laravel更新数据时,如下所示:

$json_data = json_encode(['total' => 22, ...]);
$table->where->update(['column->data' => $json_data])

结果如下:

{"data": "{\"total\":22,\"time\":5}"}

当我传递数组而没有对其进行json_encodeing时,它会引发一个错误.

如何将非原语值直接分配给JSON字段中的属性?

推荐答案

我认为唯一的解决办法如下:

   $data = ['total' => 22, 'time' => 5];
   $table->where->update([
       'column->data->total' => $data['total'] , 
       'column->data->time' => $data['time'] 
    ])

我搜索了一个不带双引号的json密钥的内容,但没有找到它.

要么内容将被完全提取,然后编辑并再次发送.或按上述方式进行个别更新.如果你找到更好的解决方案,请告诉我.

Php相关问答推荐

PHP -使用preg_match在字符串中进行匹配

PHP php_mongodb.dll for 32bit

SQLSTATE [42S02]:找不到基表或视图:1146 Table eshop. sessions不存在'''

向在添加到购物车上动态创建的WooCommerce产品添加发货类别

msgraph-sdk-php v2如何传递skiptoken到request?

从含有特殊字符的ANSI文本文件中读取数据是在移值,为什么?

laravel中获取的数据会自动更改时间戳值

在Laravel中从动态嵌套数组中获取值

在WP工具中页面加载时可短暂看到的JavaScript生成的字段

PHP Match如何准确判断条件?

除WooCommerce中的特定国家/地区外,有条件地要求填写邮政编码 checkout 字段

允许在WooCommerce管理订单列表中使用计费邮箱进行搜索

从 WooCommerce 购物车中删除总计部分,同时保留小计行

WooCommerce 以编程方式添加的费用不会持续存在

如何在 Woocommerce 中自动删除旧的已完成订单

添加产品标签以通过 WooCommerce 邮箱通知订购商品

使用动态地址和动态文件创建zip文件并获取zip文件链接

根据所选付款方式启用/禁用 WooCommerce 所需的 checkout 字段

使用 Laravel 和 Vue 进行图像表单验证

Woocommerce注册中的自定义复选框验证错误提示问题