说,我有这个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
之间建立关系,或链接用户与个人资料或其他东西(但他们已经链接到他们自己的个人资料?),但我不知道如何。我有点失落。也许我正在以错误的方式看待它。
提前致谢。
答案 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