php - 如何使用laravel查询构建器在json数组对象中搜索?

标签 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",
"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);


您也可以使用 whereRawJSON_CONTAINS的组合在这种情况下:

例如
whereRaw("JSON_CONTAINS(type, '[education]' )")->get();

如需更多信息,请查看此 post

关于php - 如何使用laravel查询构建器在json数组对象中搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54968124/

相关文章:

php - 删除具有相同前缀的文件

javascript - 在 HTML 中隐藏部分直到打开

php - 在 PHP 中强制在 CSV 生成的文件中换行

php - 如何从用户输入的 Markdown 中删除脚本标签?

php - 在 Laravel 5.0 中限制路由的最佳方法是什么?

带子方法的 Laravel artisan 命令

mysql - 使用 Laravel 队列时如何避免作业数据库表锁问题?

php - 如何在redux框架选项中显示上传或默认 Logo

javascript - 页面加载 jquery 之前的页面预加载器

php - 播种时未找到表