用于跟随用户的laravel中的多态关系

时间:2016-01-16 20:54:46

标签: laravel laravel-5.1

我有一个User模型和一个likes表。我对它应用了多态关系。

likes表具有以下结构:

user_id --- likeable_id ---- likeable_type
eg: 1 ---- 5 ---- App\User  //This indicates user 1 follows 5
eg: 3 ---- 1 ---- App\User  //This indicates user 3 follows 1

现在我正在尝试获取关注者和关注列表。

在我添加的User模型中

 public function likes()
  {
        return $this->morphMany(Like::class, 'likeable');
  }

    public function followers()
    {
        return $this->belongsTo('App\Like', 'likeable_id', 'user_id');
    }

从控制器,我试图这样做:

$user1 = User::with('followers')->where('username', $username)->first();

但它正在为null关系返回followers。我做得对吗?

1 个答案:

答案 0 :(得分:0)

自己得到答案:在User模型 -

public function followers()
{
    return $this->morphMany('App\Like', 'likeable')->with('user');
}

public function following()
{
    return $this->morphMany('App\Like', 'user', 'likeable_type')->with('user');
}