Чат Laravel – запретить создание новой комнаты, если она уже есть у двух пользователей.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Чат Laravel – запретить создание новой комнаты, если она уже есть у двух пользователей.

Сообщение Anonymous »


Я разрабатываю систему чата. у меня есть три стола

Код: Выделить всё

(users , chats , user_chat)
where the user chat is the pivot table.
I want to check every time that same users want to communicate to back to there chat room and don't create a new chat room.
like
Изображение
thats means that whenever

Код: Выделить всё

**user_id:15**
and

Код: Выделить всё

**user_id:20**
wish to communicate return them to

Код: Выделить всё

**chat_room:1**
and not create a new one. How to do it?
I already tried

Код: Выделить всё

array_intersect()
but I didn't get any result.

Код: Выделить всё

public function store(Request $requests){
//$requests->user()->id;
$data = $requests->all();
$username1 = User::select('username')->where('id',auth()->guard('api')->user()->id )->first();
$username2 = User::select('username')->where('id',$data['recever_id'] )->first();
$user1Conve[] = Conversation::where('user_id' , '=',auth()->guard('api')->user()->id )->select('chat_room_id')->get();
$user2Conve[] = Conversation::where('user_id' , '=',$data['recever_id'] )->select('chat_room_id')->get();
$result = array_intersect($user2Conve, $user1Conve);
if (count($result) == 0) {

$chatroom = ChatRoom::create([
'room_name' => 'محادثة بين' . $username1->username . ' و ' . $username2->username . '', 'sender_id' => auth()->guard('api')->user()->id

]);
$lastId = (int)$chatroom->id;

Conversation::create(['chat_room_id' => $lastId, 'user_id' => auth()->guard('api')->user()->id]);
Conversation::create(['chat_room_id' => $lastId, 'user_id' => $data['recever_id']]);

$message = Messages::create(
['message' => $data['message'],
'user_room_id' => $lastId,
'user_id' => auth()->guard('api')->user()->id,
]);
$success['chat_room_id'] = $chatroom->id;
$success['arrayIntersct'] = $result;
$pusher = new Pusher("418914066f12eac2d5fd", "6e1b5e98b06d7d3ebd7a", "449820", array('cluster' => 'ap2'));
$pusher->trigger('my-channel', 'my-event', array('message' => $message->message));
}
else {

}

return response()->json(['code'=>'success','success'=>$success], $this->successStatus);
}


Источник: https://stackoverflow.com/questions/489 ... y-have-one
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»