这是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"
},
想用成绩搜索,可以用查询生成器搜索吗?
$resumes = UserMeta::with(['user.resume' => function ($query) {
$query->where('data->section_4->type', 'like', '%education%');
}])->paginate(10);
这是尝试在 Controller 中搜索的代码。是否可以使用查询构建器 Laravel 进行等级搜索?
最佳答案
Laravel 提供 whereJsonContains
所以你可以试试下面的代码:
$resumes = UserMeta::with(['user.resume' => function ($query) {
$query->whereJsonContains('data->section_4->type', 'like', '%education%');
}])->paginate(10);
或
您也可以使用
whereRaw
与JSON_CONTAINS
的组合在这种情况下:例如
whereRaw("JSON_CONTAINS(type, '[education]' )")->get();
如需更多信息,请查看此 post
关于php - 如何使用laravel查询构建器在json数组对象中搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54968124/