Reputation: 310
I am studying the Laravel Eloquent Relationships, with different examples. I have a State model and City model, where City belongsTo State and State hasMany City.
As per given code on https://laravel.com/docs/5.7/eloquent-relationships#eager-loading, I successfully queried the states which have cities whose name starts with 'p'. But I am unable to retrieve all those cities whose state names start with 'l'.
This could be a very basic question, but still, I am seeking for help for what goes unsuccessful and why.
Upvotes: 2
Views: 6715
Reputation: 64496
You could use whereHas
to apply filter on related models like
$states= City::whereHas('state', function ($query) {
$query->where('name', 'like', 'i%');
})->get();
Querying Relationship Existence
Upvotes: 2
Reputation: 5416
Try this:
State::where('name','like','l%')->get();
For querying relationship:
$states= City::whereHas('state', function ($query) {
$query->where('name', 'like', 'l%');
})->get();
Upvotes: 4