public function showMessages(Request $request) { $id = $request->user()->id; $sql = DB::select(DB::raw("select * from (select * from `messages` where `user_id_received` = " . $id . " or `user_id_sent` = " . $id . " order by `created_at` desc) as `messages` group by `dialog_num`")); $ids = []; foreach ($sql as $item) { $ids[] = $item->id; } $msgs = Messages::whereIn("id", $ids)->with('getSender')->with('getReceiver')->orderBy("created_at", "DESC")->get(); return view()->make('user.messages', array('messages' => $msgs, 'id' => $id)); }
public function saveMessage(Request $request) { $message = []; $message['seance_id'] = $request->input('seanceHidden'); $message['user_id_received'] = $request->input('userHidden'); $message['user_id_sent'] = $request->user()->id; $message['message'] = $request->input('textArea'); $ids = [$message['user_id_sent'], $message['user_id_received']]; $b = $message['user_id_sent'] == $message['user_id_received']; if ($b) { $res = Messages::whereIn('user_id_sent', $ids)->whereIn('user_id_received', $ids)->first(); } else { $res = Messages::whereIn('user_id_sent', $ids)->whereIn('user_id_received', $ids)->whereRaw('user_id_received <> user_id_sent')->first(); } if (count($res) == 0) { $message['dialog_num'] = Messages::orderBy('dialog_num', 'DESC')->first()->dialog_num + 1; } else { $message['dialog_num'] = $res->dialog_num; } Messages::create($message); return redirect()->back()->with('error', 0)->with('message', 'Сообщение отправлено.'); }
public function sendMessage(Request $request) { $this->validate($request, array('messageArea' => 'required'), array('messageArea.required' => 'Сообщение не должно быть пустым')); $msg = []; $msg['message'] = $request->input('messageArea'); $msg['user_id_sent'] = $request->user()->id; $msg['user_id_received'] = $request->input('userHidden'); $ids = [$msg['user_id_sent'], $msg['user_id_received']]; $b = $msg['user_id_sent'] == $msg['user_id_received']; if ($b) { $res = Messages::whereIn('user_id_sent', $ids)->whereIn('user_id_received', $ids)->first(); } else { $res = Messages::whereIn('user_id_sent', $ids)->whereIn('user_id_received', $ids)->whereRaw('user_id_received <> user_id_sent')->first(); } if (count($res) == 0) { if (Messages::count() != 0) { $msg['dialog_num'] = Messages::orderBy('dialog_num', 'DESC')->first()->dialog_num + 1; } else { $msg['dialog_num'] = 1; } } else { $msg['dialog_num'] = $res->dialog_num; } Messages::create($msg); return redirect()->back(); }