0
我創建了模型,以便用戶可以成爲朋友。我有表user_friends存儲user_id和friend_id。問題是,它只能單向工作。如果用戶1將用戶2添加爲朋友,則用戶2將是用戶1的朋友,但不是相反的(用戶2的用戶1朋友)我該如何完成這樣的事情?Laravel用戶之間的友誼4
用戶模型
public function friends()
{
return $this->belongsToMany('User','user_friends','user_id','friend_id');
}
和User_Friend模型
public function user()
{
return $this->belongsToMany('User');
}
找朋友
$friends = User::find($user->id)->friends;
和控制器的一部分,我保存新的友誼
$friendData = array('user_id' => $invite->id,); //$invite is result of $invite->save()
$friend = User::find($user->id)->friends()->attach($friendData);
我不熟悉有問題的框架,但你可以做一些像......'SELECT friend_id FROM user_friends WHERE user_id =? UNION SELECT user_id FROM user_friends WHERE friend_id =?'。這應該給你一個所有朋友的名單,不管鏈接的方式如何。 – Basic
這是一個解決方案。但是Laravel和Eloquent正在使用不同的方法。對不起,我不能接受你的回答。 – SuperManSL
不是問題,我知道這不是你所追求的解決方案,這就是爲什麼它不僅僅是評論的答案。 – Basic