Простое приложение для чата, использующее Laravel - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь сделать простое приложение для чата. Я уже установил отношения ч / б user и chat_message, используя модель. Просто хочу знать, что при отправке сообщения любому пользователю сообщение не отправляется в приватном чате. Как я могу это сделать?

База данных

  1. Пользователь: https://i.stack.imgur.com/eEaR2.png
  2. Чат Mesasge: https://i.stack.imgur.com/rI2Zs.png

Модель пользователя

class User extends Authenticatable{
   public function Chats()   {
      return $this->hasMany('App\Chat_message','id','to_user_id');
   }
}

Chat_message

class Chat_message extends Model{
   public function user(){
     return $this->belongsTo('App\User');
   }
}

Контроллер

public function chat($id){          
    $single_chat = User::with('Chats')->where('id',$id)->first();
    return $single_chat;          
}

Маршрут

Route::get('/chat/{id}','HomeController@chat');

результат

{"id":1,"name":"zubairMukhtar","email":"zubairmukhtar1992@gmail.com","email_verified_at":null,"job":null,"phone_number":null,"created_at":"2020-02-12 06:49:12","updated_at":"2020-02-12 06:49:12","chats":[]}

1 Ответ

0 голосов
/ 13 февраля 2020

Вам нужно выбрать chat_messages группу данных по from_user_id, чтобы вы получили все chat_messages данные, разделенные пользователем, отправившим сообщение, и на основании этого вам нужно отобразить это сообщение в отдельном окне.

В настоящее время согласно вашему текущему запросу вы получите все сообщения в одном и том же окне, поэтому он будет отображать все сообщения на одном экране!

Надеюсь, эта помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...