Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 2.09.2012 Ostrzeżenie: (0%)
|
Mam w Symfony entity Product oraz Version - każdy produkt może posiadać wiele wersji, relacja one to many. W aplikacji wyświetlam tabelę produktów - w nagłówkach są dane z entity Product, a po kliknięciu z nagłówek pojawiają się dane poszczególnych wersji. Chciałbym, żeby nagłówek z danymi Product był wyświetlany nawet jeśli produkt nie posiada żadnych wersji. Problem w tym, że nie usuwam danych z bazy, a jedynie ustawiam pole "deleted_at" z datą usunięcia i przy zaciąganiu produktów do tabeli - jeśli nie chcę wyświetlać usuniętych wersji - to nie wyświetla mi się pusty produkt. Zapytanie wygląda tak:
Jeżeli wszystkie wersje są usunięte, to produkt nie zostanie wyświetlony, z kolei jeśli usunę warunek nałożony na wersje, to zostanie wyświetlony wraz z wersjami usuniętymi, co też nie powinno się zdarzyć. Początkowo oczekiwałem, że niespełnienie warunku przy drugiej tabeli zadziała tak, jakby nie było w niej dopasowania (wstawi nulle), tylko że to dopasowanie jest, ale niespełnienie warunku powoduje niepobranie całego rekordu. Myślałem o tym, żeby pobierać same produkty, a dopiero w Twigu nałożyć warunek "if version.deleted_at is null", ale z tego co czytałem powinno się unikać tego typu rozwiązań, gdyż wtedy kierowane są za każdym razem nowe, osobne zapytania do bazy ( do każdej wersji). Co można poradzić? |
|
|
|
mundeck [Symfony][MySQL][doctrine] LEFT JOIN - nie zaciąga rekordu przy niespełnieniu warunku drugiej tabeli 10.04.2017, 10:39:09
robert0770 daj jedno where() a w nim 2 reguły oddzielone ... 10.04.2017, 13:50:25
mundeck Hmmm... to dość ciekawy pomysł, niby oczywisty, al... 10.04.2017, 17:44:50
maly_swd [PHP] pobierz, plaintext $products = $qb->sele... 10.04.2017, 21:26:23 ![]() ![]() |
|
Aktualny czas: 24.12.2025 - 15:41 |