私はブロックされたユーザーと呼ばれるこのテーブルを持っています、それはそのようにレイアウトされています。Laravel Model、これを行うきちんとした正しい方法
id, user_id, blocked_user_id, reason, created_at, updated_at
ここで私は2人が会話できるメッセージコントローラを持っています。私はそのようにしたメッセージを送信する前に、ユーザーがブロックされているかどうかを確認したい。
$blkchk = $thread->participants()->withTrashed()->get();
foreach ($blkchk as $usr) {
$usrs[] = $usr->user_id;
}
$block = BlockedUsers::where('user_id',$usrs[0])->where('blocked_user_id', $usrs[1])->first();
$block2 = BlockedUsers::where('user_id',$usrs[1])->where('blocked_user_id', $usrs[0])->first();
if (!empty($block) || !empty($block2)) {
return response()->view('errors.403', ['error' => 'One of the users in this conversation is blocked.'], 404);
}
これはかなり面倒ですが、blkchkは両方のユーザーIDを会話に追加しています。それらを配列として設定し、それぞれを個別にターゲットにします。完璧に動作しますが、私はこれがverry messyであると信じています。
これを行う方法については、正確で最善の方法がどのようになるのだろうと思っています。
このコードが動作している場合は、http://codereview.stackexchange.com/ – phaberest