如何在Laravel 5.4中通过模型二数据组合模型和订单

时间:2018-05-27 15:30:22

标签: laravel eloquent

我希望能够通过他们在小组中的位置输出一个部分中的领导者。我想通过按组表中的位置排序的数据透视表来组合这些表。

这是我建立的三个关系

class Leader extends Model 
{
   public function groups() 
   {  
       return $this->belongsToMany('App\Group');
   }
}

class Group extends Model
{
   public function leaders() 
   {  
       return $this->belongsToMany('App\Leader');
   }
}
class GroupLeader extends Model
{
   // Maybe some function here?
}

我希望能够在控制器中获取这些组并单独传递它们。

$group1 = Leader::where('group', '=', 'group1_name')->orderBy('position', 'asc');
$group2 = Leader::where('group', '=', 'group2_name')->orderBy('position', 'asc');

return view('page.leadership')->with([
    'group1' => $group1,
    'group2' => $group2,
]);

然后我会将变量传递给包含文件,这些文件将按顺序循环遍历它们。

这是我的表结构

leaders
--------
| id
| first_name
| last_name
| deceased
----------
groups
----------
| id
| group
| title
| position
-----------
group_leader
-------------
| id 
| group_id
| leader_id
------------

1 个答案:

答案 0 :(得分:0)

试试吧

$groups = Leader::whereIn('group', ['group1_name', 'group2_name'])
    ->orderBy('position', 'asc')
    ->groupBy('group', 'id')
    ->get(['group', 'id']);