如何查询 Laravel Eloquent 的 belongsTo 关系?
Posted
技术标签:
【中文标题】如何查询 Laravel Eloquent 的 belongsTo 关系?【英文标题】:How to query Laravel Eloquent belongsTo relationship? 【发布时间】:2019-02-15 13:15:58 【问题描述】:我正在研究 Laravel Eloquent 关系,有不同的例子。我有一个州模型和城市模型,其中 City belongsTo State 和 State hasMany City。
根据https://laravel.com/docs/5.7/eloquent-relationships#eager-loading 上的给定代码,我成功查询了名称以“p”开头的城市的州。但我无法检索州名以“l”开头的所有城市。
这可能是一个非常基本的问题,但我仍在寻求帮助以了解失败的原因和原因。
【问题讨论】:
谢谢@afraz。是不是可以通过State模型查询,比如 $states= States::where('city', function ($query) $query->where('name', 'like', 'p%') ; )->get(); ? Above 将返回相关城市名称以字母 p 开头的州 【参考方案1】:试试这个:
State::where('name','like','l%')->get();
查询关系:
$states= City::whereHas('state', function ($query)
$query->where('name', 'like', 'l%');
)->get();
【讨论】:
【参考方案2】:您可以使用whereHas
对相关模型应用过滤器,例如
$states= City::whereHas('state', function ($query)
$query->where('name', 'like', 'i%');
)->get();
Querying Relationship Existence
【讨论】:
以上是关于如何查询 Laravel Eloquent 的 belongsTo 关系?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel 5.8 中使用 Eloquent 进行查询?
如何使用 Eloquent 在 Laravel 中开始查询?
如何使用 Laravel Eloquent 和 Laravel Query Builder 进行联合查询?