我有下面的代码从数据库中获取所有消息。所有消息均包含room_ID。当我转到localhost:8000 / api / messages时,我希望每个房间都有20条最新消息。有可能吗?
public function showAll()
{
$messages = Message::all();
foreach ($messages as $message) {
$message->user;
$message->room;
}
return response()->json($messages);
}
答案 0 :(得分:3)
您需要的是这个
https://laravel.com/docs/5.7/pagination
平坦而简单,您只需对每个房间都这样做:
$messages = Message::where('room_id', $room->id)->orderBy('date_column')
->paginate(20)->get();
如果正确设置关系,则可以简化此过程。