Paginacja rekordów pogrupowanych po dacie

Paginacja rekordów pogrupowanych po dacie
SS
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 180
0

Cześć, mam taki kod

Kopiuj
$messages = ChatMessage::orderBy('created_at', 'asc')
    ->where('resource_id', $resourceId)
    ->where('resource_type', $resourceType)
    ->get()
    ->groupBy(function ($group) {
        return Carbon::parse($group->created_at)->format('Y-m-d');
    });

return ChatMessagesResource::collection($messages);

pobiera rekordy pogrupowane po dacie. Ogólnie działa to prawidłowo jednak chciałbym do tego dodać paginację ponieważ pobieranie wszystkich wiadomości w konwersacji jednocześnie nie jest zbyt wydajne

jurek1980
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3581
0

Zamiast pobierać przez get() użyj paginate() poza tym grupowanie chyba też lepiej zrobić po stronie bazy, to grupowanie co masz wykonujesz chyba już na wynikach.

SS
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 180
0

zrobić grupowanie po stronie bazy, masz tutaj na myśli aby zrobić zapytanie które od razu pogrupuje rekordy?

jurek1980
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3581
0

Tak.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.