Laravel 5.1如何通过查询相关模型获取所有模型和相关模型?

时间:2015-11-20 19:49:33

标签: eloquent laravel-5.1

模特关系...... 公寓有许多平面图。 公寓有很多照片。 平面图有很多FloorplanImage。

我希望所有公寓的平面图都有0间卧室。 另外,我想抓住相关的Photo和相关的FloorplanImage。

我有点无用的代码......

    $apartmentsWithStudios = Floorplan::with(['apartment', 'floorplanImage'])
                                        ->where('bedrooms', '=', 0)->get();

如何从查询Floorplan模型中获取Apartment和所有相关模型?有可能吗?

1 个答案:

答案 0 :(得分:1)

whereHas + with

Apartment::whereHas('floorplans', function ($floorplans) {
  /** @var \Illuminate\Database\Eloquent\Query */
  $floorplans->where('bedrooms', 0);
})

  // with all floorplans and their images
  ->with('photo', 'floorplans.floorplanImage')

  // OR with floorplans without bedrooms and their images
  ->with(['phooto', 'floorplans' => function ($floorplans) {
     $floorplans->where('bedrooms', 0);
  }, 'floorplans.floorplanImage'])

  ->get();