我在用户和关注者这两个模型之间有关系。 用户具有多个关注者,而关注者属于用户。 在数据库的Followers表中,我有两列,follower_id和following_id。这两个列均引用用户表中的id列。
我的关注者和用户表
followers
id
follower_id
following_id
users
id
name
username
用户模型
public function followers(){
return $this->hasMany('App\Follower', 'follower_id');
}
public function followings(){
return $this->hasMany('App\Follower', 'following_id');
}
跟随模型
public function user(){
return $this->belongsTo('App\User');
}
在测试控制器中,我正在这样做:
$followed = Follower::find(2);
从这里,我想选择一列,follower_id或following_id,并使用$ followed-> user-> name访问此特定行所属的用户。我将如何处理?由于需要在访问之前选择一列,因此我有些困惑。 如何访问所需的数据?
答案 0 :(得分:0)
您的表格应为:
followers
id
follower_id
following_id
user_id
users
id
name
username
在关注者模型中:
public function user()
{
return $this->hasMany(Follower::class, 'user_id');
}
在您的用户模型中:
public function follower()
{
return $this->belongsTo(User::class, 'user_id');
}
然后您可以像这样查询:
$follower = Follower::with('user')->findorFail(2);
$user_name = $follower->user->name;