Kalpashree V. Bal
Kalpashree V. Bal

Reputation: 310

How to query Laravel Eloquent belongsTo relationship?

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

Answers (2)

M Khalid Junaid
M Khalid Junaid

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

Afraz Ahmad
Afraz Ahmad

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

Related Questions