Laravel雄辩:如何删除JSON列儿童密钥?
我有一个JSONB列foo
,我想在不修改其他儿童密钥的情况下删除键bar-> abc
。
我尝试了一下:
MyModel::find(123)->update([
'foo' => DB::raw("JSON_REMOVE(foo, 'bar->abc')")
]);
但是它将foo
JSONB列重置为[]
。
如何从带有Laravel雄辩的JSONB列中删除给定的键,例如bar
bar-> abc ?
(我正在使用PostgreSQL数据库)
I have a jsonb column foo
in which I would like to remove the key bar->abc
without modifying other children keys.
I tried this:
MyModel::find(123)->update([
'foo' => DB::raw("JSON_REMOVE(foo, 'bar->abc')")
]);
But it reseted the foo
jsonb column to []
.
How can I remove a given key like bar
or only children key like bar->abc
from a jsonb column with Laravel Eloquent?
(I'm using PostGreSQL database)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我建议您在模型中使用 $casts 属性:
将列数据转换为数组,然后修改数组格式的结果。
I recommended you use $casts property in your model:
to cast your column data to the array, then modify the result that is in the array format.
我终于用:
I finally fixed it with: