我正在尝试为用户实施好友列表 所以用户可以有很多朋友
但是为了给朋友打电话,我很难找到正确的关系:
user
id
friends
user_id
friend_user_id
班级用户:
public function Friends(){
return $this->hasMany('App\User', 'friends');
}
因此Auth::User()->Friends
应该返回User
模型列表
答案 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'应该是表的名称。