У меня есть две таблицы: одна - это сообщения, а другая - изображения, сообщение сохраняется в таблице сообщений, а изображения сообщений сохраняются в другой таблице с внешним ключом msg_id
, и я работаю над этим, как будто в одном потоке есть несколько сообщений и изображений. позвольте мне показать вам фотографии.
и вот моя таблица изображений
![here is my images table](https://i.stack.imgur.com/14AtB.png)
вы видите, что в одном сообщении есть 3 изображения, а во втором сообщении с тем же потоком также есть 3 изображения, теперь я хочу сгенерировать json с двумя объектами, и у каждого объекта есть массив списка изображений с этими изображениями,
Я включил здесь в качестве примера json
{
"status": "Success",
"code": 200,
"ConversationList": [
{
"id": 1,
"category": "Budget",
"cat_id": 1,
"message": "Hi how are you",
"dateTime": "12-12-2019 10:20:20 AM",
"user_type": "1",
"user_id": 1,
"ImageList": [
{
"image": "askdaksdjaskdjkasjdaksd"
},
{
"image": "askdaksdjaskdjkasjdaksd"
}
]
},{
"id": 1,
"category": "Budget",
"cat_id": 1,
"message": "Hi how are you",
"dateTime": "12-12-2019 10:20:20 AM",
"user_type": "1",
"user_id": 1,
"ImageList": [
{
"image": "askdaksdjaskdjkasjdaksd"
},
{
"image": "askdaksdjaskdjkasjdaksd"
}
]
}
]
}
То, что я попробовал, это
$msg = Message::where('msg_dept_id',$request->msg_dept_id)
->join('images AS c', function($join){
$join->on('messages.thread_id', '=', 'c.thread_id')
->on('messages.msg_id', '=', 'c.msg_id');
})
->where('msg_dept_name',$request->msg_dept_name)
->where('messages.thread_id',$request->thread_id)
->orderBy('messages.msg_id', 'DESC')
->get();
foreach($msg as $m)
{
$imagelist[] = Image::select('image')
->where('images.thread_id',$m->thead_id)
->where('images.msg_id',$m->msg_id)
->get();
}
// $data[] = $msg + $imagelist;
// $data = json_encode($data);
return response()->json([
'status' => 'Success',
'code' => 200,
'messages' => $msg,
]);
}