Php 如何使用laravel查询生成器在json数组对象中搜索?
下面是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
"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);