Merhabalar arkadaşlar, Laravel frameworku kullanıyorum ve mesajlaşma uygulamam için kullanıcıların mesajlaşma listesini döndürdüğüm index fonksiyonum gayet güzel çalışıyor fakat ileride kullanıcılar çok mesajlaşınca çok fazla item olacak ve mesajların açılması uzun sürecek diye bu fonksiyona ->paginate(10) dahil edip her sayfada 10 item döndürüp infinite scroll yapacağımki performans sorunu yaşamayıp dileyen kullanıcı aşağı indikçe yeni mesajlar yüklensin.

Düşünce iyi hoş ama daha önce blogları veya postları listelemek için basit döngüler kullanıp sonuna ->paginate(10) ilave etmem yeterli oluyordu ama br yerden aldığım bu listeleme kodu çok karışık ve neresine ekleyeceğimi bulamadım, stackoverflowda onlarca yanıt geldi ama halen çözülemedi bir de şansımı buralarda deniyim dedim :)

ChatController.php dosyamdaki index() fonksiyonum;


public function index()
{
$contacts = [];
$user = request()->user();
// Loop through the contacts and format each one

Contact::for($user->id)->get()->each(function ($contact) use ($user, &$contacts) {
$friend = $contact->user1_id === $user->id ? $contact->user2 : $contact->user1;
$contacts[] = $friend->toArray() + ['room' => $contact->room->toArray()];
});

return response()->json($contacts);
}


Json Çıktısı : https://0bin.net/paste/WLY6DwFcmLzS5yBo#5LTEDczywJDW8VpD+V8Q00-lk3VeLNyF/AUlGfCcpPA