我已經創建了使用數據透視表和多對多關係在laravel應用程序中添加和刪除好友的功能。如何阻止'追隨者'laravel
我現在被困在處理阻塞成員朋友的另一個朋友的最佳方式。
現在我有一個帶有時間戳,blocked_user和created_by的'已阻止'表。
什麼是最好的檢查方法是在添加朋友之前,在關係表中存在關係?
我已經創建了使用數據透視表和多對多關係在laravel應用程序中添加和刪除好友的功能。如何阻止'追隨者'laravel
我現在被困在處理阻塞成員朋友的另一個朋友的最佳方式。
現在我有一個帶有時間戳,blocked_user和created_by的'已阻止'表。
什麼是最好的檢查方法是在添加朋友之前,在關係表中存在關係?
您正在使用的模型。假定。並且您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
調用它來檢查這個用戶是否被阻止。
的形式給出可能是這樣的:
$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
}
我真的很喜歡這種方法! 我只是因爲某些原因而迷路了什麼是blockedUsers關係。 它會只是一對多嗎? –
@ walker-kinne它會是很多很多。我剛剛編輯了代碼。 – yazfield
非常感謝你對此的幫助,不知道我爲什麼是空白。 –