Laravel Eloquent uzyskuje wyniki pogrupowane według dni
Obecnie mam tabelę odsłon, która rejestruje jeden wiersz dla każdego dostępu użytkownika do strony, rejestrując ip/id użytkownika i identyfikator samej strony. Muszę dodać, że kolumna created_at jest typu: timestamp, czyli zawiera godziny/minuty/sekundy. Kiedy próbuję wykonać zapytanie groupBy, nie grupuje tych samych dni ze względu na różnicę w sekundach.
created_at page_id user_id
========== ======= =======
10-11-2013 3 1
10-12 2013 5 5
10-13 2013 5 2
10-13 2013 3 4
... ... ...
Chciałbym uzyskać wyniki na podstawie wyświetleń/dzień, aby uzyskać coś takiego:
date views
==== =====
10-11-2013 15
10-12 2013 45
... ...
Myślę, że będę musiał zagłębić się w zapytania DB :: raw (), aby to osiągnąć, ale wszelkie zrozumienie bardzo by pomogło, dzięki
Edycja: Dodano wyjaśnienie do formatu created_at.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
14 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Jednak nie jest to tak naprawdę rozwiązanie Laravel Eloquent, ponieważ jest to surowe żądanie. Oto, co wymyśliłem w składni elokwentnej. Pierwsza klauzula where wykorzystuje do porównania daty emisji dwutlenku węgla.
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
zobacz pomoc tutaj
https://mariadb.com/kb/en/library/date_format/
Mysql/Mariadb) i użyj czegoś takiego w laravel-5.4:
Anonimowy użytkownik
Potwierdzenie od:
Używam
Mam nadzieję, że to ci pomoże.
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Przechowując dane, które chcesz zgrupować i używając indeksów, możesz uzyskać wydajną i prostą metodę rozwiązania tego problemu.
Utwórz migrację
>
Aktualizacja modelu
>
Za pomocą
>
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
W swoim modelu dodaj mutator/Getter w ten sposób
Innym sposobem jest odlewanie kolumn
w swoim modelu wypełnij tablicę
Haczyk polega na tym, że nie będziesz w stanie ponownie użyć węgla w tym modelu, ponieważ Eloquent zawsze będzie rzucać kolumnę do rzędu
Mam nadzieję że to pomoże :)
Anonimowy użytkownik
Potwierdzenie od:
W ten sposób pobieram ostatnie dziesięć dni i liczę każdy wiersz z tym samym znacznikiem czasu created_at.
Mam nadzieję że to pomoże
Anonimowy użytkownik
Potwierdzenie od:
timestamp w laravel możesz to zrobić w ten sposób
Anonimowy użytkownik
Potwierdzenie od:
https://github.com/Ifnot/statistics
https://github.com/Ifnot/statistics
Oparty jest na elokwencji, węglu i wskaźnikach, dzięki czemu jest bardzo łatwy w użyciu. Może być przydatne do pobierania wskaźników pogrupowanych według daty.
```
Anonimowy użytkownik
Potwierdzenie od: