我的应用程序中有一个refferal系统。一个用户可以使用另一个用户。
用户表
id name
1 A
2 B
3 C
推介表
id referrer_id referee_id
1 1 2
2 2 3
我想展示用户推荐的内容。
用户模型
public function referrals()
{
return $this->hasMany('App\Models\Referral','referee_id','id');
}
推介模式
public function referrer_user()
{
return $this->belongsTo('Modules\User\Models\User','referrer_id','id');
}
public function referee_user()
{
return $this->belongsTo('Modules\User\Models\User','referee_id','id');
}
在推荐模型中定义User模型中的hasMany关系和belongsTo关系,我没有得到所需的结果。
@foreach($user->referrals as $key => $referral)
{{dd($referral->referee_user->name)}}
@endforeach
这返回给我自己的用户名(推荐人)而不是裁判
答案 0 :(得分:1)
您指的是ManyToMany关系的错误方式。
无论如何,通过以下方式,它将变得更加容易和有效。
id name referred_by
1 abc null
2 def 1
3 gfd 2
用户模型
/**
* Who did he bring onboard?
*/
public function referrals(){
return $this->hasMany('....User', 'referred_by');
}
//Who brought him onboard..
public function referree(){
return $this->belongsTo('...User', 'referred_by');
}
请查看相应的语法。