首页 > 解决方案 > 如何使用 Laravel 搜索/更新下面的 json 对象数组?

问题描述

样本数据

[{
    "name": "aml_kyc",
    "order": 4,
    "online": true,
    "enabled": true,
    "completed": false
}, {
    "name": "payment_video",
    "order": 6,
    "online": false,
    "enabled": true,
    "completed": false
}]

我试过了$project->where('project_progress->name', 'aml_kyc')->first(),但我明白了null

Laravel@latest MySQL@5.7.27

标签: laraveleloquent

解决方案


因为您的条件查询是错误的,并且您的json 是由 array 嵌套的

尝试使用JSON_CONTAINS

 $project->whereRaw('json_contains(project_progress, ?)', ['{"name":"aml_kyc"}'])->first()

推荐阅读