Laravel的关系遇到一些麻烦,不确定是否有解决方案,但希望你们能帮助我。 因此,假设我有2个表 USERS 和 TRAINEES 。可以将用户视为公司,管理员,指导员取决于字段角色。 关于关系作为公司的用户可以有很多TRAINEES,但作为指导者也可以有很多TRAINEES。那么在这种情况下,我如何建立它们之间的关系?表TRAINEES应该具有 COMPANY_ID 和 INSTRUCTOR_ID 字段?或如何?但这是 USERS 表。我不知道你是否清楚。问我吧。依靠你们
答案 0 :(得分:0)
设计用户和受训者表,如下所示:
用户表的列/字段:
学员表的列/字段:
然后在您的学员模型中,执行以下操作:
public function trainer()
{
return $this->belongsTo('App\User', 'trainer_id');
}
public function company()
{
return $this->belongsTo('App\User', 'company_id');
}
在您的用户模型中,执行以下操作:
public function trainees()
{
if($this->attributes["role"] == "company")
return $this->companyTrainees();
if($this->attributes["role"] == "instructor")
return $this->instructorTrainees();
return array();
}
public function companyTrainees()
{
return $this->hasMany('App\Trainee', 'trainer_id');
}
public function instructorTrainees()
{
return $this->hasMany('App\Trainee', 'company_id');
}
在控制器和其他地方使用这些关系。这没有经过测试,但是应该不会太过马车。别忘了用有效的数据为数据库播种,尤其是对于ID。