一对一hasOne
public function user()
{
return $this->hasOne(User::class, 'user_id', 'user_id');
}
远程一对一(三表)hasOneThrough
public function assessCompany()
{
/* 用白话文讲6个参数意思,注意参数3,5配对 参数4,6配对
* 参数1,我最终需要获取的那张表的模型
* 参数2,我需要使用到的中间表模型
* 参数3,中间表与主表相等的字段 (本例为id=assess_effect_id)
* 参数4,目标表与中间表相等的字段 (本例为company_id=id)
* 参数5,主表与中间表相等的字段 (本例为id=assess_effect_id)
* 参数6,中间表与目标表相等的字段 (本例为company_id=id)
* */
return $this->hasOneThrough(CompanyInfo::class, AssessEffect::class, '表2.id', '表3.id', '表1.assess_effect_id', '表2.company_id');
}
后面弃用===============
表一user_id** =》 关联表二user_id(找到表二中unit_id) =》 关联表三unit_id(找到表三中full_name)
hasOneThrough(表三目标模型,表二中间模型,表二id(用于连接表三),表三id(用于关联表二),表一id(用于连接表二),表二id(用于连接表一))
public function userUnit()
{
return $this->hasOneThrough(SysUnit::class, User::class, 'unit_id', 'unit_id', 'user_id', 'user_id');
}