laravel 5枢轴表

时间:2014-10-27 14:19:56

标签: laravel laravel-5

我正在尝试为用户实施好友列表 所以用户可以有很多朋友

但是为了给朋友打电话,我很难找到正确的关系:

user
  id

friends
  user_id
  friend_user_id

班级用户:

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

因此Auth::User()->Friends应该返回User模型列表

3 个答案:

答案 0 :(得分:1)

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

试试这个:

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

答案 1 :(得分:0)

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

模型/ 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_friend_of)

答案 2 :(得分:0)

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

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

调用$ user-> Friends() - > get()应该返回您需要的所有内容。请注意,'friends'应该是表的名称。