orWhereHas - parameter grouping on Eloquent query - how do I do this in Laravel?

后端 未结 1 1702
情深已故
情深已故 2020-12-31 11:31

In an eloquent query I am building, I am placing a constraint on a has relationship using Laravel 4.1\'s whereHas and orWhereHas metho

相关标签:
1条回答
  • 2020-12-31 12:01

    You need to reference the query passed through to the where closure. Otherwise you are adding the grouped where clauses to the main query bypassing any groupings:

    $ret
    ->where( function( $query ){
        $query->whereHas('homeClub', function ( $subquery ){
            $subquery->where('name','Arsenal' );
        })
        ->orWhereHas('awayClub',function ( $subquery ){
            $subquery->where('name','Arsenal' );
        });
    })
    ->where( function ( $query ) use ( $parameterValues ){
        $query->whereHas('season', function ($subquery) use ( $parameterValues ){
            $subquery->where('name', $parameterValues['season_names'] );
        });
    })
    ->whereHas('territory',function( $query ) use ( $parameterValues ){     
        $query->where('region','Australia');
    })
    ->get();
    
    0 讨论(0)
提交回复
热议问题