我真的希望你们中的一些聪明人可以帮助我解决薪资等级以上的问题;)
在以下情况下,如何找到连接到某个Subpart的所有用户?
任何人都有见解吗?甚至这是否确实可以解决当前的问题?
我选择加入两个数据透视表,因为可以将用户分配给项目而无需分配给子部分 。每个用户最终都将被分配到一个或多个子部分,但是我需要“常规”信息,例如约束和费用(保存在“分配”模型上),以与每个Subpart-Talent连接一起出现。
项目: ID
元素: id,project_id
子部分: ID,element_id
用户: ID
分配:id,project_id,user_id,已归档,约束,费用
assignments_subparts: id,assignment_id,subpart_id,说明
通常,我会使用从Subpart到Talent的更简单的hasManyThrough,但是由于我实际上是在联接两个数据透视表(assignment和assignemnts_subparts),因此无法正常工作。我似乎没有超过Assignment模型的ManyThrough。
我看过Steidenmeir的has-man-deep软件包,但是我没有最清楚的线索来知道如何设置正确的ID和外键数组...
class Project extends Model
{
public function elements()
{
return $this->hasMany(Element::class);
}
public function subparts()
{
return $this->hasManyThrough(Subpart::class, Element::class);
}
public function users()
{
return $this->belongsToMany(User::class, 'assignments')->using(Assignment::class)->as('assigns')->withPivot(['id', 'archived']);
}
}
class Assignment extends Pivot
{
public function user()
{
return $this->belongsTo(Users::class);
}
public function project()
{
return $this->belongsTo(Project::class);
}
public function subparts()
{
return $this->belongsToMany(Subpart::class, 'assignments_subparts', 'assignment_id', 'subpart_id')->using(AssignmentSubpart::class)->as('assignsubpart');
}
}
class AssignmentSubpart extends Pivot
{
//
}
class Subpart extends Model
{
public function element()
{
return $this->belongsTo(Element::class, 'element_id');
}
public function assignments()
{
return $this->belongsToMany(Assignment::class, 'assignments_subparts', 'subpart_id', 'assignment_id')->using(AssignmentSubpart::class)->as('assignsubpart');
}
//
// And here is the part I need working:
//
public function users()
{
return null;
}
}