cyberfly
5/2/2017 - 1:26 AM

Eloquent whereHas and whereOr inside For example, I have a query where I want to filter on not only the club name (related question) but al

Eloquent whereHas and whereOr inside

For example, I have a query where I want to filter on not only the club name (related question) but also the territory name.

In this example, I'd like query results where the club (club relationship) name is Arsenal and the the region is Australia (territory relationship)

<?php

public function search()
{

    $ret->with('territory')->with('homeClub')->with('awayClub');
    
    $ret->whereHas('territory',function( $query ){
        $query->where('region','Australia');
    })
    ->where(function($subQuery)
    {   
        $subQuery->whereHas('homeClub', function ( $query ) {
            $query->where('name', 'Arsenal' );
        })
        ->orWhereHas('awayClub', function ( $query ) {
            $query->where('name', 'Arsenal' );
        });
    });
}