多重嵌套但不起作用:我只得到第一个
Multiple nested with not working: I just get the first one
我使用多个 with
.
执行一个 eloquent 查询
这是我执行的查询:
$offers = \App\Offer::
with(['event_date.event.place.location'], ['event_date.event.theatre.prices'])
->whereHas('event_date', function ($query) use ($location_id) {
$query->where('events_dates.date', \Carbon\Carbon::today()->format('Y-m-d'));
if (!empty($location_id)) {
$query->whereHas('event', function ($query) use ($location_id) {
$query->whereHas('place', function ($query) use ($location_id) {
$query->where('places.location_id', $location_id);
});
});
}
})
->skip($skip)
->take($take)
->get();
问题是我只得到第一个 with 子句 (event_date.event.place.location
),而不是第二个。
我认为问题是两个 with
子句具有相同的根 (event_date.event
),但我不知道如何解决它。
已更新
这是 json 我得到的:
{
"data":[
{
"id":12,
...
"event_date":{
"id":1119,
"event_id":6,
"date":"2018-10-28 00:00:00",
...
"event":{
"id":6,
"title":"Evento di test ennesimo",
...
"place":{
"id":2,
...
"location":{
"id":2320,
"name":"Roma",
"code":null,
"root_id":29,
"lft":11910,
"rgt":11911,
"level":3
}
},
}
}
}
]
}
如您所见,有 event_date.event.place.location
的记录信息,但没有 event_date.event.theatre.prices
.
的记录信息
您不能将多个数组传递给 with()
。单个数组或多个字符串:
with('event_date.event.place.location', 'event_date.event.theatre.prices')
with(['event_date.event.place.location', 'event_date.event.theatre.prices'])
我使用多个 with
.
执行一个 eloquent 查询
这是我执行的查询:
$offers = \App\Offer::
with(['event_date.event.place.location'], ['event_date.event.theatre.prices'])
->whereHas('event_date', function ($query) use ($location_id) {
$query->where('events_dates.date', \Carbon\Carbon::today()->format('Y-m-d'));
if (!empty($location_id)) {
$query->whereHas('event', function ($query) use ($location_id) {
$query->whereHas('place', function ($query) use ($location_id) {
$query->where('places.location_id', $location_id);
});
});
}
})
->skip($skip)
->take($take)
->get();
问题是我只得到第一个 with 子句 (event_date.event.place.location
),而不是第二个。
我认为问题是两个 with
子句具有相同的根 (event_date.event
),但我不知道如何解决它。
已更新
这是 json 我得到的:
{
"data":[
{
"id":12,
...
"event_date":{
"id":1119,
"event_id":6,
"date":"2018-10-28 00:00:00",
...
"event":{
"id":6,
"title":"Evento di test ennesimo",
...
"place":{
"id":2,
...
"location":{
"id":2320,
"name":"Roma",
"code":null,
"root_id":29,
"lft":11910,
"rgt":11911,
"level":3
}
},
}
}
}
]
}
如您所见,有 event_date.event.place.location
的记录信息,但没有 event_date.event.theatre.prices
.
您不能将多个数组传递给 with()
。单个数组或多个字符串:
with('event_date.event.place.location', 'event_date.event.theatre.prices')
with(['event_date.event.place.location', 'event_date.event.theatre.prices'])