如何制作一个链接两个用户ID的数据透视表?

时间:2016-09-20 21:32:51

标签: php mysql database laravel eloquent

说,我有这个Laravel 5.3设置

用户表

id | name | password

用户模型

class User extends Authenticatable
{
    public function profile()
    {
        return $this->hasOne('App\Profile');
    }
}

个人资料表

id | user_id

个人资料模型

class Profile extends Model
{

    public function user()
    {
        $this->belongsTo('App\User');
    }
}

现在我希望人们能够关注彼此的个人资料。我需要创建一个数据透视表,在两个user_id之间建立关系,或链接用户与个人资料或其他东西(但他们已经链接到他们自己的个人资料?),但我不知道如何。我有点失落。也许我正在以错误的方式看待它。

提前致谢。

1 个答案:

答案 0 :(得分:3)

为什么没有具有以下结构的user_follows表:

id | user_id | follows_id

然后,您可以使用以下内容分别获取用户关注的用户和关注用户的用户:

public function follows()
{
    return $this->belongsToMany('App\User', 'user_follows', 'user_id', 'follows_id');
}


public function followers()
{
    return $this->belongsToMany('App\User', 'user_follows', 'follows_id', 'user_id');
}

查看多少对多关系在这里工作: https://laravel.com/docs/5.3/eloquent-relationships#many-to-many