2014-10-27 106 views
0

我試圖實現對用戶 一個好友列表,因此用戶可以有很多朋友laravel 5透視表

但調用的朋友,我無法得到我的關係權:

user 
    id 

friends 
    user_id 
    friend_user_id 

類用戶:

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

所以Auth::User()->Friends應返回User模型

列表
+0

請提供更多信息: - 朋友是否也是班級「用戶」或單獨班級「朋友」? – Adimeus 2014-10-27 14:29:58

+0

用戶是唯一的類 – Kiwi 2014-10-27 14:36:04

回答

1

你居然沒有一個「一對多」的關係,而是「多對多」與friends是您的加盟表

試試這個:

public function Friends(){ 
    return $this->belongsToMany('App\User', 'friends', 'user_id', 'friend_user_id'); 
} 
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'); 
} 

這將意味着你只有1臺,其中有一個外鍵另一排在同一個表,例如:(ID - 姓名 - user_friend_of)

0

在你的用戶類,定義函數如下:

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

調用$用戶>朋友() - > get()方法應該返回你所需要的一切。請注意,「朋友」應該是表格的名稱。