我已经创建了使用数据透视表和多对多关系在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
非常感谢你对此的帮助,不知道我为什么是空白。 –