我的Laravel模型之一称为Property,它包含应用程序中的所有Real Estate属性。每个媒体资源都包含一个城市和国家/地区。
因此,我有以下关系表:
City_property (holds city of properties)
| id | city_id | property_id |
|----|---------|-------------|
| x | 2 | 1 |
City_country (holds country of city)
| id | country_id | city_id |
|----|------------|---------|
| x | 3 | 2 |
因此,在获取我所有的属性时,我想要属性国家(地区)上的where子句,因此我只能在country = 5(例如)的地方获取属性。
答案 0 :(得分:1)
您可以结合使用joins和where
方法。例如:
Property::join('City_property', 'properties.id', '=', 'City_property.id')
->join('City_country', 'City_property.city_id' , '=', 'City_country.city_id')
->where('City_country.country_id', 5)
->get();
答案 1 :(得分:0)
您可以使用查询构建器whereHas
方法来对关系执行查询。在此示例中,我将您的模型重命名为“ Property and Country”。这也假定存在国家关系。
Property::whereHas('country', function ($query) {
$query->where('id', 5);
})->get();