![]() |
![]() ![]() |
![]() |
![]()
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ć? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 1 Dołączył: 18.02.2015 Ostrzeżenie: (0%) ![]() ![]() |
daj jedno where() a w nim 2 reguły oddzielone 'or'
bez andWhere |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 2.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
Hmmm... to dość ciekawy pomysł, niby oczywisty, ale nie pomyślałem o tym wcześniej, bo to zakłada, że będą wyświetlone produkty, które same zostały usunięte, ale mają jedną wersję nieusuniętą. Teoretycznie aplikacja nie powinna dopuszczać do takich sytuacji (usunięcie produktu powoduje usunięcie wszystkich wersji) ale na wszelki wypadek nie powinna też dopuszczać do wyświetlania się, jeśli ta reguła zostałaby w jakiś sposób złamana. Spróbuję może "skomplikować" zapytanie tak żeby wyszło że "wilk syty i owca cała". Thx za podpowiedź
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
-------------------- śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu.. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 7.06.2025 - 04:49 |