多重嵌套但不起作用:我只得到第一个

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'])