0

我正在尝试制作简单的聊天应用程序。我已经使用模型建立了 b/w user 和 chat_message 的关系。只是我想知道,当我向任何用户发送消息时,消息不会在私人聊天中发送。我怎样才能做到这一点?

数据库

  1. 用户:https ://i.stack.imgur.com/eEaR2.png
  2. 聊天消息: https ://i.stack.imgur.com/rI2Zs.png

用户模型

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

聊天消息

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":[]}
4

1 回答 1

0

您应该按 获取chat_messages数据组from_user_id,以便您将所有chat_messages数据按发送消息的用户分开,并根据您需要在单独的窗口上显示这些消息。

目前,根据您当前的查询,您将在同一窗口中获得所有消息,因此它将在同一屏幕上显示所有消息!

希望这有帮助!

于 2020-02-13T05:25:04.063 回答