Laravel 拉威尔5枢轴台

Laravel 拉威尔5枢轴台,laravel,laravel-5,Laravel,Laravel 5,我正在尝试为用户实现一个friendlist 所以一个用户可以有很多朋友 但是打电话给朋友,我的关系不好: user id friends user_id friend_user_id 类用户: public function Friends(){ return $this->hasMany('App\User', 'friends'); } 因此Auth::User()->Friends应该返回Usermodels当创建与同一模型的关系时,您可以执行以下操作:

我正在尝试为用户实现一个friendlist 所以一个用户可以有很多朋友

但是打电话给朋友,我的关系不好:

user
  id

friends
  user_id
  friend_user_id
类用户:

public function Friends(){
    return $this->hasMany('App\User', 'friends');
}

因此
Auth::User()->Friends
应该返回
User
models

当创建与同一模型的关系时,您可以执行以下操作:

模型/User.cs

public function Friends()
{
   return $this->hasMany('User', 'user_friend_of', 'id'); // assuming user_friend_of is the FK on user-table
}

public function User()
{
    return $this->belongsTo('User');
}
这意味着您只有一个表,其中有一个外键指向同一表中的另一行,例如:(id-name-user\u friend\u of)

您实际上没有“一对多”关系,而是“多对多”,其中
friends
是您的加入表

试试这个:

public function Friends(){
    return $this->belongsToMany('App\User', 'friends', 'user_id', 'friend_user_id');
}

在用户类中,按如下方式定义函数:

public function Friends(){
    return $this->hasMany('friends');
}

调用$user->Friends()->get()应该会返回所需的一切。请注意,“friends”应该是表名。

请提供更多信息:-friends也是“User”类还是单独的“Friend”类?User是唯一的类