在上篇文章中,我们讲到如何邀请其他user进入群组,现在来实现踢人出群组的功能,其实这并不难,怎麽加进来就怎麽踢出去,我们在groups这张table新增user_id以及card_id,就等於加入,那踢出就是删除罢了。
#从卡片中删除使用者
public function delete_user(Request $request, $cardId)
{
$userData = $request->userData;
$user = $userData->username;
$deleteUserId = $request->user_id;
$card = $userData->ShowCards->find($cardId);
if (!$card) {
return response()->json(['status' => false, 'error' => 'card search not found'], 400);
}
$cardOwner = $card->create_user;
$cardGroup = $card->ShowGroups;
# 先判断使用者是否为卡片创立者
if ($user == $cardOwner) {
$Lv = 1;
} else {
$Lv = 2;
}
$delete = $cardGroup->where('users_id', $deleteUserId)->first();
if (!$delete) {
return response()->json(['status' => false, 'error' => 'user search not found'], 400);
}
$deleteUser = Users::find($deleteUserId)->username;
if ($deleteUser == $cardOwner && $Lv == 2) {
return response()->json(['status' => false, 'error' => 'you can not delete card owner'], 400);
}
$delete->delete();
#删除後若card拥有者不见了,替换下一位card拥有者
$card = Card::find($cardId);
$group = $card->ShowGroups;
if ($deleteUser == $cardOwner) {
if (isset($group[0])) {
$nextOwner = $group->first()->ShowUsers->username;
$card->update(['create_user' => $nextOwner]);
} else {
$card->delete();
}
}
if ($card->ShowUsers->count() == 1) {
$card->update(['private' => true]);
}
return response()->json(['status' => true,]);
}
说明:
code看起来蛮长的,不过是因为有加上之前说的功能,要判断现在删的是谁。
这个功能我设计使用者需要输入user_id和card_id,判断要在哪张card删除谁。
以下是删除後,假设创立者删了自己
以上是我的踢人功能的作法,这些if判断式完全是看你的需求,其实也可以做的很简单,例如只判断是否为card创立者,只有创立者才能用此功能,这样或许简单许多,就看团队讨论这功能细节是如何了,今天就到这边吧,Bye!
>>: Day 28 Spark on kubernetes
这篇文章要介绍的是单列函数中的日期函数。 前面介绍的是单纯的日期单列函数,接下来列出一些简单的日期运...
(今天这篇文章好鸡肋阿!) 比起决定要不要使用最新观念、最新套件,以下几件事情务必要注意: 1.实作...
昨天最後提到Target data和Source data都是labeled data的情况,今天我...
与国际接轨,免不了的需要共通性标准,即要符合最小有效沟通成本,也要可以将合作伙伴的利益最大化(传说中...
看完这篇文章你会得到的成果图 前言 我们接下来的讨论,会基於读者已经先读过我 day5 文章 的架构...