Where condition in Laravel Relationship Example

By Hardik Savani January 4, 2019 Category : Laravel

Laravel 5 provide great feature as model relationship. but if you need to use where clause on your relation model then how you can do it?, You can make where condition using whereHas function. it doesn't matter which relation you used like one to one, one to many, many to many, has many through etc.

Sometime might be you need to add where condition with your relation model then you can simply use whereHas() as i provide bellow example with laravel 6, laravel 7 and laravel 8 app.

Several days ago i had same situation when i used laravel relationship. need to use where condition like i need to get those users that country is "India". so i write condition like as bellow example:

Example:

$users = User::whereHas('countries', function($q){

$q->where('name', '=', 'India');

})->get();

dd($users);

You can also pass dynamic variable inside the whereHas() like this way:

Example 2:

$search = 'India';

$users = User::whereHas('countries', function($q) use($search){

$q->where('name', '=', $search);

})->get();

dd($users);

I hope it can help you....