How to use whereHas with orWhereHas in Laravel?

Admin   Laravel   73  2020-08-11 11:40:38

Here, we will learn how to use orwherehas in laravel. we can use eloquent wherehas than orwherehas when we used relationship in laravel application. some time we require to use query orwherehas in laravel 6.

In this example i will show you how to use whereHas and orWhereHas in laravel application.

Many time we add more than two relation with database model and you have to add where condition with both of that relation model than how you will add where condition with both model.

If you don't understand clearly than i will explain you by example. i have User Model with some records. When i create new user at that time i have two more fields for city and state. i basically i have City and State master. i will add belong to relationship with my User model.

Than my requirement was if i had one search box for city and state. when i search on text box than records should compare with city and state both model. So basically or where condition with both model relationship. At that time i require to use whereHas with orWhereHas in my application.

If you have same issue than you can see how i used simple whereHas with orWhereHas in my controller method. So let's see bellow code:


public function myUsers()


$users = User::with(['city', 'state']);

if ($request->has('name')) {

$users = $users->whereHas('city', function( $query ) use ( $request ){

$query->where('name', $request->name);

})->orWhereHas('state', function( $query ) use ( $request ){

$query->where('name', $request->name);



$users = $users->get();



you can use as bellow example.

I hope it can help you...