Laravel - LeftJoin 'on' and 'orOn' at the same time

Viewed 105

I want to accomplish something like this:

SELECT *
FROM table1
LEFT JOIN table2 ON (table1.id=table2.id OR table1.tid=table2.tid) AND table1.x=table2.x

Which in Laravel would become something like:

TABLE1::leftJoin('table2', function($join){
    $join->on('table1.id','table2.id')->orOn('table1.tid','table2.tid');
    $join->on('table1.x','table2.x');
})->get()

I'm just not sure how to bring the OR parenthesis in Eloquent's query?

1 Answers

Found it:

TABLE1::leftJoin('table2', function($join){
    $join->on(function($join2) {
        $join2->on('table1.id','table2.id');
        $join2->orOn('table1.tid','table2.tid');
    });
    $join->on('table1.x','table2.x');
})->get()
Related