2017-04-26 53 views
0

我已經創建了使用數據透視表和多對多關係在laravel應用程序中添加和刪除好友的功能。如何阻止'追隨者'laravel

我現在被困在處理阻塞成員朋友的另一個朋友的最佳方式。

現在我有一個帶有時間戳,blocked_user和created_by的'已阻止'表。

什麼是最好的檢查方法是在添加朋友之前,在關係表中存在關係?

回答

0

您正在使用的模型。假定。並且您User模式有關係blockedUsers: 編輯:

User extends Model { 
    // ... 
    public function isBlocked($userId) 
    { 
     return (boolean) $this->blockedUsers() 
      ->where('blocked_user_id', $userId)->count(); 
    } 
    public function blockedUsers() 
    { 
     return $this->belongsToMany(User::class, 'blocked_users_table', 'user_id', 'blocked_id'); 
    } 
} 

只是調用這個方法不管你覺得適合。你可以從addFriend調用它來檢查這個用戶是否被阻止。

+0

我真的很喜歡這種方法! 我只是因爲某些原因而迷路了什麼是blockedUsers關係。 它會只是一對多嗎? –

+0

@ walker-kinne它會是很多很多。我剛剛編輯了代碼。 – yazfield

+0

非常感謝你對此的幫助,不知道我爲什麼是空白。 –

0

的形式給出可能是這樣的:

$blocked_user = DB::table('blocked') 
->where([ 
    ['created_by', '=', $user_id], 
    ['blocked_user', '=', $blocked_user_id], 
]) 
->first(); 

# user isn't blocked 
if (empty($blocked_user)) { 
    # add friend procedure 
}