2017-05-29 98 views
0

有三种型号:雄辩分组的关系

品牌(ID,姓名)

例子可以

1Mc Donald's

2Help Desk

商场(ID,姓名)

实施例:

1Central Mall

插座(ID,姓名,brand_id,mall_id)

实施例可能是

1Mc Donald's Ground Floor11

2Mc Donald's Food Court11

3Help Desk Ground Floor21

4Help Desk First Floor21

5Help Desk Second Floor21

在模型中已经定义的有关系,我希望得到的结果为商城如:

App\Mall::with('outlets.brand')->where('id',1)->get(); 

给我一个结果,如:

App\Mall { 
id: 1, 
name: "Central Mall", 
outlets:{ 
'1' => { 
    name:"Mc Donald's", 
    outlets: { 
      1 => { 
        'id' => 1, 
        'name'=> "Mc Donald's Ground Floor", 
       } , 
      2 => { 
        'id' => 2, 
        'name'=> "Mc Donald's Food Court", 
       } , 
      .... 
      } 
     } 
    } 
} 

回答

0

这是未经测试,但使用[Collection::groupBy](https://laravel.com/docs/5.4/collections#method-groupby)功能,您应该可以将插座分组。

$mall = App\Mall::with('outlets.brand')->find(1); 
$outlets = $mall->outlets->groupBy('brand.name');