Laravel 5.8雄辩的模型关系错误

时间:2019-04-06 04:05:18

标签: laravel eloquent

我在用户和关注者这两个模型之间有关系。 用户具有多个关注者,而关注者属于用户。 在数据库的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访问此特定行所属的用户。我将如何处理?由于需要在访问之前选择一列,因此我有些困惑。 如何访问所需的数据?

1 个答案:

答案 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;