2017-02-20 13 views
0

私はusersテーブルを持っており、各ユーザーは友達を追加できます。友人は他のユーザーです。Laravel:適切な関係を選択してください

私は、次の列を持つuser_friendsという名前のピボットテーブルを作成:

id | user_id | friend_id 

私は$user->friends()を使用して、ユーザーの友人を得ることができるので、私は関係を定義できますか?

+0

最も重要なことは、あなたのピボットテーブル名はアルファベット順であることを確認することです特異なテーブル名でピボットテーブルは "friend_user"でなければなりません。 –

答えて

0

まず:ピボットテーブルは、あなたがテーブルfriend_user

friend_id | user_id 

Userモデルでセットアップはあなたの関係

public function friends() 
{ 
    return $this->hasMany(User::class); 
} 

public function users() 
{ 
    return $this->belongsToMany(User::class); 
} 

を持っている必要があります行

のIDを持っていない私はないですこれがうまくいくかどうか100%確信していますが、もしそうなら、知りたいです!あなたは、次のようにそれを行うことができます

+0

なぜ2番目の機能ですか? – TheUnreal

+0

@TheUnreal私は、pivotMemberの名前をhasMany関数の2番目のパラメータとして明示的に指定する必要があると思います。その後、それは動作します。 2番目の機能は必要ありません。 –

+0

@JohnDoeピボットテーブルの名前を2番目のパラメータとして入力すると、列として検索しようとします。「列が見つかりません:1054不明な列」users.user_friends ' – TheUnreal

0

ユーザークラスでは、特定のユーザーの友人を取得するには、次の関数を定義します。

public function friends() 
{ 
    return $this->hasMany("App\Friends","user_id","id"); 
} 

$user = Users::find($user_id); 
$user_friends = $user->friends()->get(); 
関連する問題