Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 雄辩复连接_Laravel_Eloquent - Fatal编程技术网

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> 这个令人困惑的空话中没有一个字能真正帮助回答老年退休金计划的问题。