laravel 私信

问题描述

我正在使用 laravel 和 vue js 构建一个简单的私人聊天应用。

我有一个包含一列的消息表:id/sender_id/receiver_id and body

我的主要问题是从消息表中获取用户。因此,如果 sender_id 1 已将消息发送到receiver_id 2,那么在发送者仪表板中,我想显示接收者 ID 为 2 的接收者的名称,并在单击该名称获取这两个用户间的对话。

同样,在接收者仪表板中,我想显示所有发送消息的用户的列表。

简而言之,作为一个登录用户,我应该看到我向其发送消息的用户名称以及我收到消息的用户名称,当单击这些名称时,我将能够看到所有对话。

Message.PHP

类消息扩展模型 { 使用 HasFactory;

public function user(){
    return $this->belongsTo(User::class);
}

}

目前,我是这样做的

Route::get('/messages','MessageController@index');

public function index()
    {

        $messages = Message::with('user')
        ->groupBy('sender_id')
        ->where('receiver_id',auth()->user()->id)
        ->orWhere('sender_id',auth()->user()->id)
       
        ->get();
}

我的vue就是这样

<li v-for="(person,index) in users" :key="index">
                    <a href="" @click.prevent="showMessage(person.user_id)">{{person.user.name}}{{person.user_id}}</a>
                    
                    </li>

export default{
        data(){
            return{
                users:[],messages:[],}
        },mounted(){
            axios.get('/api/users').then((response)=>{
                this.users = response.data
            })
        }
//....

        
        
    }

我的问题是:如果我(假设 john )向 David(接收者)发送了一条消息,我会在 David 仪表板上看到 John 的名字,这是正确的,因此单击 John 的名字我可以获取 John 和 David 之间的所有对话但是,在 john 的信息中心(给 David 的消息发送者)上,我看到了 John 的名字,但我需要在这里输入 David 的名字。

所以在发件人仪表板上,我需要收件人姓名,而在收件人仪表板上,我需要发件人姓名。

我认为这可能与查询有关。请帮我。谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...