Aktywne Wpisy
DarkLilith +4
Poznajcie kobietę, wyznaje wam że była w fwb przez 4 miesiące. Jakie są wasze odczucia/zachowania, ciągnięcie dalej znajomość czy może kończycie?
#seks #zwiazki #logikarozowychpaskow
#seks #zwiazki #logikarozowychpaskow
czy to normalne, że różowa po 3 miesiącach rozłąki na wieść, że pojutrze się w końcu zobaczymy odpisuje "no okey", a gdy napisałem, że za nią tęskniłem to odpisuje "xD" i, że idzie spać? dziwnie się poczułem, ale może przesadzam
Jest taka sytuacja. Korzystając z #symfony2 i #doctrine pobieram rekordy z bazy danych. Używam zarówno find(), findAll(), findOneBy() itd. Piszę też zapytania do db korzystając z query builder. Wydaje mi się jednak, że mam za dużo zapytań do bazy danych. Na jednej stron mam 36 zapytań do bazy danych , mimo że tam wyświetlam tylko statystykę o produktach i użytkownikach (użytkownik - ilość głosów, produkt - ilość głosów).
W poprzedniej pracy pracując z Yii1 nie miałem takiego debuggera jaki jest w sf2 (tzn. miałem ale nie korzystałem), więc nie wiem ile tam było zapytań, ale ogólnie to polegał na tym, że używawjąc join, leftJoin wyciągałem wszystko jednym zapytaniem, a potem operowałem na tablicy rezultatów.
Tutaj natomiast mam wrażenie, że doctrine dociąga informację podczas wyświetlania jej w #twigu, ponieważ w debuggerze mam masę takich samych zapytań, różniących się tylko parametrem. np. tu część zapytań: http://i.share.pho.to/9a99d6e0_o.png
Jak zrobić, żeby informacja nie była pobierana w DB w taki sposób, a np. jednym zapytaniem. Może jest jakiś dobry artykuł?
#php #webdev #symfony2 #doctrine #db
Bo do produktów nie dołączyłeś joina z obrazkami
Hm… teraz akurat wpadłem na taką myśl, że wystarczy pobrać wszystkie obrazki korzystając z JOIN i w twigu użyć filter first, żeby uzyskać ten sam
Query::HYDRATE_ARRAY
/getArrayResult)(a jeszcze lepiejHYDRATE_NONE
jak nie masz joinów, co prawda musisz wtedy korzystać z nazw takich jak bazie ale jeszcze więcej zyskujesz na wydajności)http://doctrine-orm.readthedocs.io/projects/doctrine-orm/en/latest/reference/partial-objects.html
->leftJoin('żródłojoina.cojoin','alias')
i tyle, cała reszta się dzieje tak jak napisałeś - automatycznie, skąd symfony(czy jakiwkolwiek inny język i fw) ma się domyśleć że będziesz uzyskiwał dostęp do tego cojoin ? ma sprawdzać to sobie w widoku najpierw
$product = $em->getRepository(Product::class)->findBy(['onSale' => true]);
Żeby zapobiec powielaniu się zapytań, muszę napisać własną metodę do pobierania danych?