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.
Try this:
State::where('name','like','l%')->get();
For querying relationship:
$states= City::whereHas('state', function ($query) {
$query->where('name', 'like', 'l%');
})->get();
You could use whereHas
to apply filter on related models like
$states= City::whereHas('state', function ($query) {
$query->where('name', 'like', 'i%');
})->get();