public function orders()
{
return $this->hasMany(Order::class);
}
orders (este o functie in modelul Customer de unde iau comenzile lor) = este un array, 1 array pt fiecare comanda. Fiecare comanda are variabila numita total care este suma, eu trebuie sa adun acele totaluri pt toate comenzile existente ale unui user si in functie de rezultat, sa ii ordonez dupa suma calculata.
N-am idee cum as putea sa fac asta…
Multumesc!
Multumesc pt fiecare raspuns tuturor!
Dar, cum folosesc orderBy acum sa-mi ordoneze in functie de rezultat? Am incercat cu ->orderBy('sum('orders.total')') dar fara efect…
Functia arata acum asa:
Păi rezultatul unui SUM nu aparține de nici un tabel, de ce ai face order by tabel.total?
Faci order după coloana de SUM. Ca să-ți faci viața mai ușoară alocă-i o denumire mai simplă rezultatului și apoi poți face order. (sum(total) as sum_total de ex)
Ca să știi să folosești un ORM e bine să înțelegi SQL-ul din spate…ajută mult.
Inteleg… insa, in acel Query pe care l-am postat nu vad cum as putea sa folosesc "sum(total) as sum_total ", daca poti sa-mi lasi un exemplu ceva, multumesc oricum pt ajutor.
Este si mai usor de inteles pt ca seamana cu sql. Nu am facut nimic mai mult, decat sa transcriu query-ul lui @RedGuard. Si ceva imi spune ca nu se face niciun subquery. Sau daca se face, nu vad eu unde.
Este bine ca prima data sa incerci un query pe baza cu sql si apoi sa incerci sa il transcrii in aplicatie. Atentie la acel where. Ai grija cum iti vine acel client_id.