2016-04-26 9 views
2

ユーザーが別のユーザーを追跡できるようにするために、フォローシステムを設定するのが最善の方法であると思っていました。フォロワーテーブルを作成し、他のユーザーのIDに続いてユーザーのIDを挿入するのは簡単ですか?ありがとう。Laravel 5.2ユーザーのシステムに従います

+2

単に優しい先端が、あなたがこのページの上に読むことをお勧めします:[ハウツー-Ask Guide](https://stackoverflow.com/help/how-to-ask)を使用することで、質問が簡単に答えることができ、できるだけ明確であることを常に確認することができます。あなたが抱えている問題を修正するためにあなたがした努力と、それらの修正を試みたときに何が起こったのかを必ず含めてください。ショーコードとエラーメッセージも忘れないでください! –

+0

ヘッドアップありがとう。私はまったくこれで全く分からなかった。それにはララキャストビデオがありましたが、現在は古くなっており、Laravel 5.2で正しく動作しません。 – GarethFrazer

+0

これはなぜ閉鎖されていますか?質問はかなり明確で必要なものです。質問者は、コードの背後にあるロジックを探していて、コード全体を要求していません。私はstackoverflowは、このタイプのトピックでよりuserfriendlyでなければならないと思います。 – Nikonah

答えて

7

はい、この種の偉業をlaravelで作成するのはとても簡単です。

私はあなたにこれをお勧め:Friendship system with Laravel : Many to Many relationship

あなたがしなければならないすべてはフォロワーで友人を交換です。

例:

がテーブルを作成します。

:あなたのUserモデルで

followers: id, user_id, follower_id.

を使用すると、この関係

function followers() 
{ 
    return $this->belongsToMany('App\User', 'followers', 'user_id', 'follower_id'); 
} 

function follow(User $user) { 
    $this->followers()->attach($user->id); 
} 

function unfollow(User $user) { 
    $this->followers()->detach($user->id); 
} 

は、ユーザー1フォロワーを取得する必要があります

ユーザー1フォローユーザー2

$user1 = User::find(1); 
$user2 = User::find(2); 
$user1->follow($user2); 

ユーザー1フォローフォローユーザー2

$user1 = User::find(1); 
$user2 = User::find(2); 
$user1->unfollow($user2); 
+0

各ユーザーのフォローボタンでこれを実装するにはどうすればよいですか? – GarethFrazer

+0

@zorx次のすべてのアクションを保存するためにortherにフォロワーテーブルを持たなければならないか、この問題を回避するための方法がありますか?私はそれがおそらくばかげた質問であることを知っていますが、余分なテーブルでこれをどうやって行うのかはすでに明らかですが、質問する論理的な方法は見つけられません。それはちょうど私のデータベースのタブです、それらのあまりにも多くが既にあります:/ – Nikonah

+0

私はrlyが私を悩ます一つのことがあります。ユーザーがすでに他のユーザーをフォローしているかどうかをどのように検出しますか?そうすれば、ユーザーは他のユーザーを複数回フォローすることはできません。 – Nikonah

関連する問題