Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 873 Pomógł: 25 Dołączył: 24.07.2005 Ostrzeżenie: (0%)
|
mam takie dwie encje
w modelu mam
oraz listę parametrów przypisanych do danej konfiguracji
pytania z założeniami: 1. Potrzebuję wyciągnąć zsumowaną pod względem ( water, feed, weight, downs ) listę parametrów należące do configuracji o race_id in (tutaj różnie może być od jednego id po kilka) + dodatkowo jak widać mogę mieć kilka konfiguracji dla danego race_id więc potrzebują wziąć tą z najnowszą datą.
może też inaczej ,..... chciałbym osiągnąć wynik, który daje np takie zapytanie:
czyli potrzebuję wybrać najnowszą konfigurację dla danego race_id. W przypadku kilku race_id wziąć najnowszą konfigurację i dodać ja do najnowszego konfiguracji z kolejnego race_id Chciałbym to wyciągnąc ładnie ORM i nie uzywać plain query. Czy ktoś z Was ma pomysł? Ten post edytował john_doe 10.05.2018, 14:37:05 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 30.05.2018 Ostrzeżenie: (0%)
|
Hej,
Jest to bardzo często spotykany problem, gdy chcesz posortować lub też filtrować wyniki na bazie relacji. Najlepszym rozwiązaniem w takim przypadku jest dynamiczne zbudowanie odpowiedniego zapytania ze wszystkimi JOIN'ami jakie są potrzebne. Każda tabele powinna posiadać jakiś alias, a następnie na bazie pól, które dostaniesz do sortowania/filtrowania wprowadzasz odpowiednie warunki. Cała magia polega na tym, że na końcu nie wyciągasz wszystkich pól, a jedynie tą główną tabelę Eloquent i dopiero potem doczytujesz pozostałe relacje (->with() lub ->load()). Tutaj masz przykładową implementację z tym, że jest to już trochę bardziej zaawansowane, ponieważ używam własnego QueryBuilder'a do rozkminienia jakie relację muszę załadować, ale mniej więcej widać koncepcję https://github.com/GrupaZero/cms/blob/maste...y.php#L296-L330 Tutaj może to być nawet lepiej widoczne, wystarczy do tego zapytania dodać odpowiedni orderBy https://github.com/GrupaZero/cms/blob/maste...y.php#L105-L116 |
|
|
|
john_doe [Laravel] Eloquent poprawne zwrócenie danych 10.05.2018, 14:20:36
r4xz Wyciągnięcie ostatniej konfiguracji nie powinno by... 14.05.2018, 22:37:58 
markonix Cytat(r4xz @ 14.05.2018, 23:37:58 ) T... 15.05.2018, 01:29:39 
r4xz Cytat(markonix @ 15.05.2018, 02:29:39... 15.05.2018, 20:13:39
SmokAnalog Cytat(john_doe @ 10.05.2018, 15:20:36... 15.05.2018, 11:42:05
SmokAnalog Możesz podać konkretny przykład z tym sortowaniem?... 15.05.2018, 21:39:53
r4xz Modele:
- Order (id, user_id, product_name, amoun... 15.05.2018, 22:47:16
SmokAnalog Każdy with() robi osobne zapytanie, więc posortowa... 15.05.2018, 22:54:20
Pyton_000 Zawsze można użyć QueryBuildera. Tak samo w doctri... 15.05.2018, 23:02:44
markonix Albo posortować już gotową kolekcję za pomocą sort... 16.05.2018, 01:08:52 ![]() ![]() |
|
Aktualny czas: 29.12.2025 - 21:30 |