【发布时间】:2019-02-20 23:09:44
【问题描述】:
我有以下查询:
$countries = Country::where('code', '=', $code)
->with(array('cities.details' => function ($query) use ($user) {
$query->where('cities.name', '=', 'This is a city name');
}))->first();
让我们看看这个例子:我有三个表,Country、City和CityDetails。我想获取所有国家/地区,然后获取所有城市(包括详细信息),但我还希望按名称过滤城市并获取属于城市表的详细信息表 e.
如果我想使用with(cities.details) 来获取子表和另一个表,如何使用 CITIES 属性进行过滤?
主要问题是:如何在 secondTable.OtherTable 这样的 with 语句中获取两个表并使用 secondTable 属性过滤查询?
只是为了更清楚,如果我使用这样的语句:
$countries = Country::where('code', '=', $code)
->with(array('cities.details' => function ($query) use ($user) {
$query->where('name', '=', 'This is a detail name');
}))->first();
我只能访问 details 表属性。问题是:如何访问 city 表属性以在 with 语句中进行过滤?
提前致谢
【问题讨论】: