Laravel雄辩的查询并在OR条件下加入

时间:2018-09-25 15:25:10

标签: php laravel eloquent

我正在尝试进行雄辩的查询,在表a = x ORb = x所在的表上进行联接;我无法使它工作。所以我希望有人能提供帮助。

这是我的查询:

$candidates = HrCandidate::where('people_id', '<>', 'NULL')

  ->with('contact')

  ->join(

    'people',

    ->where('id','people_id')

    ->orWhere('alternate_id','people_id')

  )

  ->get();

我正在尝试与人员表连接,但要连接people_id = 1alternate_id列。因此,我希望有人可以对此提供帮助。

1 个答案:

答案 0 :(得分:1)

首先,将Closure作为第二个参数传递给join方法。该Closure将收到一个JoinClause对象,该对象使您可以指定join子句的约束:

$candidates = HrCandidate::join('people', function ($join) {
        $join
            ->on('people.id', '=', 'candidates.people_id')
            ->orOn('people.alternate_id', '=', 'candidates.people_id');
    })
    ->where('people_id', '<>', 'NULL')
    ->get();