Wpis z mikrobloga

Ma ktoś pomysł czy da się to rozegrać na poziomie query buildera, bo nie mam pomysłu.

Mam encję z polami np.
- withPrice: bool
- withoutPrice: bool

Każda encja ma przynajmniej jedno pole ustawione na true ale może też mieć oba. W przypadku gdy ma dwa na true chciałbym otrzymać dwa rekordy tej samej encji jeden z withPrice: true withoutPrice: false i drugi odwrotnie.

Pobieram listę z paginacją i robiąc to na poziomie kodu czyli "powielając" to przy mapowaniu na dto rozjeżdża mi się ilość wpisów na liście. jest ich więcej niż zakładam w limicie.

#symfony #doctrine
  • 6
  • Odpowiedz
@VintageRock: było projektowane tak bo biznes na początku powiedział, że użytkownik ma decydować checkboxem którą opcję wybiera, z ceną lub bez gdy encja ma obie włączone. Potem zmienił się plan "wyświetlajmy użytkownikom jednak osobne wpisy wtedy". W dużym skrócie oczywiście, ogólnie pierwsze plany idealnie pasowały pod jeden wpis. W sumie dalej oprócz problemów z listingiem lepszy jest jeden wpis bo tak trzeba by dublować i dbać o spójność danych. Ta
  • Odpowiedz
@pitu120: może pokombinuj z native query + union + własne mapowanie na modele, cos w stylu:

(select *, 'withPrice' as type from xyz where withPrice = 1
union
select *, 'withoutPrice' as type from xyz where withoutPrice = 1)
order by ... limit ...
  • Odpowiedz
Mam encję z polami np.

- withPrice: bool

- withoutPrice: bool Każda encja ma przynajmniej jedno pole ustawione na true ale może też mieć oba.


@pitu120: no to jak dla mnie to robienie jakieś #!$%@? z logiki na modelu. albo jest z ceną albo bez ceny – obie cechy nie mogą być jednocześnie prawdą.

zamiast zastanawiać się jak zmusić doctrine to robienia jakiegoś gówna, weź się za przeprojektowanie swojego gówna.
  • Odpowiedz