Laravel通过列用户id获取所有对话,每个对话都应获取所有消息
我有一张桌子 对话有很多对话 我有一张信息表 消息表有许多消息 Messages表包含一行,其中表中的每条消息都有一个行对话id 这表示每条消息都属于一个对话 我能用Laravel通过列用户id获取所有对话,每个对话都应获取所有消息,laravel,Laravel,我有一张桌子 对话有很多对话 我有一张信息表 消息表有许多消息 Messages表包含一行,其中表中的每条消息都有一个行对话id 这表示每条消息都属于一个对话 我能用 <?php namespace App; use Illuminate\Database\Eloquent\Model; /** * Get the Messages for the Conversation chat. */ public function messages() { return $th
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
/**
* Get the Messages for the Conversation chat.
*/
public function messages()
{
return $this->hasMany('App\Message');
}
我想要的是我想要通过列user_id获取所有对话,并且每个对话都应该获取所有消息?
一连串的谈话
如果可能的话,可以这样做
[
//conversation 0
[
[
id: 1
message : "Bla bla bla",
],
[
id: 2
message : "Response to Bla bla bla",
],
[
id: 3
message : "Bye",
]
],
//conversation 1
[
[
id: 1
message : "Bla bla bla",
]
],
//conversation 2
[
[
id: 1
message : "Bla bla bla",
]
],
]
我该怎么做呢?我不知道我该用什么你可以这样做,比如获得用户的对话:
$conversations = App\Conversation::with('messages')->where('user_id', $id)->get();
其中,$id
是用户id,带有('messages')
返回会话消息集合。要访问此功能,您只需执行以下操作:
foreach($conversations as $conversation){
$conversation->messages;
}
谢谢你,先生,工作得很好。我很乐意从文档中了解这一点,如果你能提供链接,再次感谢你。这里是,这里也是
foreach($conversations as $conversation){
$conversation->messages;
}