Laravel Relationship Where Condition Example

By Hardik Savani April 16, 2024 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, laravel 8, laravel 9, laravel 10 and laravel 11 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....

Tags :
Shares