Laravel 雄辩复连接
我做了一个示波器Laravel 雄辩复连接,laravel,eloquent,Laravel,Eloquent,我做了一个示波器 public function scopeCollaborative($query){ return $query->leftJoin('collaborative', function($join){ $join->on('imms.phone2', '=', 'collaborative.phone') ->orOn('imms.phone', '=', 'collaborative.phone')
public function scopeCollaborative($query){
return $query->leftJoin('collaborative', function($join){
$join->on('imms.phone2', '=', 'collaborative.phone')
->orOn('imms.phone', '=', 'collaborative.phone')
->where('collaborative.user_id', '=', App('CURUSER')->id);
});
}
在查询日志中,此范围添加:
left join `cs_collaborative` on
`cs_imms`.`phone2` = `cs_collaborative`.`phone` or
`cs_imms`.`phone` = `cs_collaborative`.`phone` and
`cs_collaborative`.`user_id` = 3
但我需要:
left join `cs_collaborative` on
(`cs_imms`.`phone2` = `cs_collaborative`.`phone` or
`cs_imms`.`phone` = `cs_collaborative`.`phone`) and
`cs_collaborative`.`user_id` = 3
我没有找到一个好的解决方案,JoinClause有函数:On、orOn、where、orWhere
但非所有的都可以将函数作为输入并进行分组查询
有人有理想吗?Laravel不允许您构建这样的join子句,因此您需要这样才能使其正常工作:
public function scopeCollaborative($query){
return $query->leftJoin('collaborative', function($join){
$join->on('imms.phone2', '=', 'collaborative.phone')
->where('collaborative.user_id', '=', App('CURUSER')->id)
->orOn('imms.phone', '=', 'collaborative.phone')
->where('collaborative.user_id', '=', App('CURUSER')->id);
});
}
你可以考虑使用Orm Orm更强大,在开始时不太容易……p> 这个令人困惑的空话中没有一个字能真正帮助回答老年退休金计划的问题。