如何使用 laravel 查询更新 jsonb 列

how to update jsonb column using laravel query

我想将 available 更新为 false,其中 toy->id=27。任何人都可以给我 laravel eloquent 查询吗?谢谢。

{
   "color":"red",
   "toy":{
      "id":27,
      "name":"Truck",
      "price":12,
      "available":true
   },
   "quantity":"12"
}

在 Postgresql 中,您可以像下面这样使用 JSONB_SET:


update table set data=JSONB_SET(data, '{toy,available}','false') where data->'toy'->>'id'='27';

您可以在 DB::update 中执行此操作,即


DB.update("update table set data=JSONB_SET(data, '{toy,available}','false') where data->'toy'->>'id'='27';

参考:https://laravel.com/docs/8.x/database#database-transactions