请在下面有两个表,用户表和消息表
$table->increments('id');
$table->unsignedInteger('from');
$table->unsignedInteger('to');
$table->mediumText('text');
$table->boolean('read')->default(false);
以及用户类别中的这两个关系
public function sentMessages(){
return $this->hasMany(Message::class, 'from');
}
public function receivedMessages(){
return $this->hasMany(Message::class, 'to');
}
我只想让我与之交谈的用户。我该怎么办..即使使用原始sql
答案 0 :(得分:0)
如果您只是用户可以做什么:
$userId = 'id of user to get conversations for';
User::whereHas('receivedMessages', function ($q) use ($id) {
$q->where('from', $id);
});
这将为您提供所有从给定ID的用户收到消息的用户。如果您希望获得也向该用户发送邮件的用户,可以执行以下操作:
$userId = 'id of user to get conversations for';
$collocutor = User::orWhereHas('receivedMessages', function ($q) use ($id) {
$q->where('from', $id);
})->orWhereHas('sentMessages', function ($q) use ($id) {
$q->where('to', $id);
});