我正在尝试制作我认为与多个关键字段的Laravel hasManyThrough关系。我的数据库看起来像:
员工
小组
我知道数据库设置不太理想,但由于它是外部应用程序数据库,我无法改变任何内容。
在我的员工模型中,我希望创建一种关系,通过团队中的一个团队领导者字段,可以提取属于员工的所有员工。我该怎么设置呢?
答案 0 :(得分:0)
您可以将其作为ManyToMany关系处理,与三个OneToMany捆绑在一起。
class Team extends Model{
public function employees()
{
return $this->hasMany('App\Employee');
}
public function teamleader1()
{
return $this->hasOne('App\Employee','teamleader1_user_id');
}
public function teamleader2()
{
return $this->hasOne('App\Employee','teamleader2_user_id');
}
public function teamleader3()
{
return $this->hasOne('App\Employee','teamleader3_user_id');
}
}
class Employee extends Model {
public function teams()
{
return $this->belongsToMany('App\Team');
}
}
您可能有一个名为employee_team的中间表,其名称为" name"它的属性。有关详细信息,您可以查看Laravel Docs上的Many to many关系。