laravel 查询生成器 (GROUP CONCAT) 错误
laravel query builder (GROUP CONCAT) error
我有一组用户技能,但我需要的是只获取技能数组我试过这个
$builder->where('job_id', $value)
->join('users', 'job_applicants.user_id', '=', 'users.id')
->join('user_skills', 'users.id', '=', 'user_skills.user_id', function ($join){
$join->selectRaw("GROUP_CONCAT(user_skills.skill, ', ')");
})
->groupBy('job_applicants.job_id')
->get();
异常消息:Object of class Closure could not be converted to string
连接闭包应该是 table 名称后的第一个也是唯一一个参数。
->join('user_skills', function ($join) {
$join->on('users.id', '=', 'user_skills.user_id')
->selectRaw("GROUP_CONCAT(user_skills.skill, ', ')");
});
但是,selectRaw 在 join 闭包中并没有多大意义。从逻辑上讲,这不是您 select 数据的位置。您已加入 table,您的 select 语句属于主查询,它不属于包含在联接中,如下所示:
$builder->selectRaw("job_applicants.*, GROUP_CONCAT(user_skills.skill, ', ')")
->where('job_id', $value)
->join('users', 'job_applicants.user_id', '=', 'users.id')
->join('user_skills', 'users.id', '=', 'user_skills.user_id')
->groupBy('job_applicants.job_id')
->get();
我有一组用户技能,但我需要的是只获取技能数组我试过这个
$builder->where('job_id', $value)
->join('users', 'job_applicants.user_id', '=', 'users.id')
->join('user_skills', 'users.id', '=', 'user_skills.user_id', function ($join){
$join->selectRaw("GROUP_CONCAT(user_skills.skill, ', ')");
})
->groupBy('job_applicants.job_id')
->get();
异常消息:Object of class Closure could not be converted to string
连接闭包应该是 table 名称后的第一个也是唯一一个参数。
->join('user_skills', function ($join) {
$join->on('users.id', '=', 'user_skills.user_id')
->selectRaw("GROUP_CONCAT(user_skills.skill, ', ')");
});
但是,selectRaw 在 join 闭包中并没有多大意义。从逻辑上讲,这不是您 select 数据的位置。您已加入 table,您的 select 语句属于主查询,它不属于包含在联接中,如下所示:
$builder->selectRaw("job_applicants.*, GROUP_CONCAT(user_skills.skill, ', ')")
->where('job_id', $value)
->join('users', 'job_applicants.user_id', '=', 'users.id')
->join('user_skills', 'users.id', '=', 'user_skills.user_id')
->groupBy('job_applicants.job_id')
->get();