Php 如何使用laravel查询生成器在json数组对象中搜索?

Php 如何使用laravel查询生成器在json数组对象中搜索?,php,laravel,laravel-5,Php,Laravel,Laravel 5,下面是json数组 "section_4": { "data": [ { "grade": "3.0", "degree": "BSCSE", "end_date": "2019-03-28T10:35:00.000Z", "institute": "DIU", "start_date": "2019-03-25T10:35:00.000Z" }, { "grade": "4.0", "degree": "BSCSE", "end_date": "2019-04-30T10:50:00.000Z

下面是json数组

"section_4": {
"data": [
{
"grade": "3.0",
"degree": "BSCSE",
"end_date": "2019-03-28T10:35:00.000Z",
"institute": "DIU",
"start_date": "2019-03-25T10:35:00.000Z"
},
{
"grade": "4.0",
"degree": "BSCSE",
"end_date": "2019-04-30T10:50:00.000Z",
"institute": "STU",
"start_date": "2019-03-31T10:50:00.000Z"
}
],
"type": "education",
"title": "Educations"
},
如果要使用grade进行搜索,是否可以使用查询生成器进行搜索

$resumes = UserMeta::with(['user.resume' => function ($query) {
                $query->where('data->section_4->type', 'like', '%education%');
        }])->paginate(10);
下面是尝试在控制器中搜索的代码。是否可以使用查询生成器laravel使用grade进行搜索?

laravel提供的服务,您可以尝试以下代码:

$resumes = UserMeta::with(['user.resume' => function ($query) {
                $query->whereJsonContains('data->section_4->type', 'like', '%education%');
        }])->paginate(10);
在本例中,您还可以将
whereRaw
JSON\u CONTAINS
组合使用:

e、 g


如需了解更多信息,请查看此

以在laravel中的json数组中进行搜索,您可以使用以下内容: 例如,您希望从“数据”数组中检查“等级”中的值:


完成….

这里得到了所有的数组对象教育->数据;要搜索数据->年级和学院教育数据。我可以搜索每个年级和学院吗@伊夫蒂哈尔uddin@ShunhraSarker是的,为什么不呢!它应该类似于
data->section\u 4->data['grade']
data->section\u 4->data->grade
这里的数据可以是多个。如果没有foreach循环,它是否适用于多个数据?@ShunhraSarker您是如何解决该循环的?
whereRaw("JSON_CONTAINS(type, '[education]' )")->get();
$resumes = UserMeta::with(['user.resume' => function ($query) {
            $query->whereJsonContains('data->data', ['grade' => "3.0"]);
    }])->paginate(10);