Próbuję utworzyć kwerendę UNION przy użyciu Propel ORM npzapytania UNION z Propel ORM
$criterion1 UNION $criterion2
Czy ktoś wie jak to zrobić?
Próbuję utworzyć kwerendę UNION przy użyciu Propel ORM npzapytania UNION z Propel ORM
$criterion1 UNION $criterion2
Czy ktoś wie jak to zrobić?
Nie można utworzyć kwerendy związkowej za pomocą kryteriów. Zamiast tego możesz create the SQL string yourself i użyć go do uwadniania obiektów. Jeśli nadal chcesz używać Kryteriów do budowania obu części zapytania związkowego, możesz zadzwonić pod numer BasePeer::createSelectSql(Criteria $criteria, array &$params)
. Spowoduje to zwrócenie ciągu znaków SQL z ?
w miejscach wartości, które muszą zostać ustawione przez warstwę PDO. Drugi parametr jest tablicą, która zostanie wypełniona tymi parametrami (dlatego przekazujesz ją przez odniesienie). Możesz przekazać to do funkcji PDOStatement::execute(array $params)
.
Dwa rozwiązania przychodzą na myśl. Po pierwsze, trywialnym podejściem jest uruchomienie dwóch oddzielnych wywołań, a następnie użycie array_merge
, aby skleić je ze sobą. W zależności od twojego przypadku użycia może to nie być tak drogie, jak ci się wydaje.
Ponadto, jeśli utkniesz podczas pisania zapytania, napisz widok z żądanym zapytaniem, a następnie umieść go w swoim modelu Propel. Miałem masę bardzo skomplikowanych ekranów szczegółów mistrzowskich w Propel/symfony 1.x, a to podejście działało na wiele przyjemności. To idzie nieco przeciwko filozofii używania ORM, ale hej, fajnie jest łamać zasady raz na jakiś czas! :)
Czy możesz zaktualizować link? Nie działa –
@NeelBasu: Link przekazał mi nowy adres, zaktualizowałem go. –
Łącze jest zepsute ponownie (ponieważ wiki jest zepsute), ale tekst [nadal można znaleźć tutaj] (http://trac.propelorm.org/browser/branches/1.4/docs/guide/03-Basic-CRUD. tekst). [Wersja obecnego wydania (1.6) znajduje się tutaj] (http://trac.propelorm.org/browser/branches/1.6/docs/guide/03-Basic-CRUD.txt). – Ladadadada