Laravel 向 json 列中的数组添加一个元素
Posted
技术标签:
【中文标题】Laravel 向 json 列中的数组添加一个元素【英文标题】:Laravel add an element to array inside a json column 【发布时间】:2021-09-15 01:31:47 【问题描述】:假设我们有一个用户,其参数字段如下:
User::first()->parameters
=> [
"pins" => [
1,
],
]
现在我想添加另一个图钉来获得这样的效果:
User::first()->parameters['pins']
=> [
2,
1,
]
目前我正在使用以下查询:
User::first()->update(['parameters' => ['pins' => array_merge([2], User::first()->parameters['pins'])]])
我想知道是否有任何 Eloquent 方法可以在不先获取引脚的情况下做到这一点(我的意思是没有 User::first()->parameters['pins']
)。因为mysql支持JSON_ARRAY_APPEND()
【问题讨论】:
【参考方案1】:这是更新字段数组的唯一方法。
为了更好,您可以使用 one to many
表命名,如 user_parameters
并使用类似 $user->parameter()->create()
的东西使用 eloquent 关系,插入新值而不获取旧数组。
【讨论】:
以上是关于Laravel 向 json 列中的数组添加一个元素的主要内容,如果未能解决你的问题,请参考以下文章
向 laravel 中的资源 json 响应添加状态和消息键
如何查询数据库以查找包含来自多选 (Laravel) 的 json 数据的列中的元素
Laravel Eloquent 在 JSON 列中查找日期在某个范围内的所有记录