Chcę wybrać rekordy, które mają 1 miesiąc lub są nowsze.Jak korzystać z funkcji MySQL w Propel
Zapytanie jest: SELECT * FROM foobar GDZIE created_at> DATE_SUB (CURDATE(), INTERVAL 1 miesiąc)
Korzystanie Propel w Symfony, zrobić:
$ c = nowe kryteria
$ c-> add (FoobarPeer :: CREATED_AT, "DATE_SUB (curdate(), INTERVAL 1 MONTH)", Kryteria :: GREATER_THAN);
Co generuje Propel jest: SELECT * FROM foobar GDZIE created_at> 'DATE_SUB (CURDATE(), INTERVAL 1 miesiąc)' - innymi słowy, to stawia funkcji MySQL w apostrofach, co sprawia, że jest on (bez znaczenia) ciąg i nie otrzymuję żadnych rekordów.
Co robiłem na razie jest:
$ c-> add (FoobarPeer :: created_at "created_at> DATE_SUB (CURDATE(), INTERVAL 1 miesiąc)" Kryteria :: CUSTOM) ;
Ale nie chcę używać niestandardowych obejść, chyba że muszę. Wszelkie wskazówki oprócz użycia Kryteriów :: CUSTOM?
Ponieważ Propel bardzo się rozwinął od czasu udzielenia odpowiedzi na to pytanie, oto kilka uwag (napisanych przez lidera projektu Propel), informujących, kiedy istotne jest użycie ORM, lub surowego SQL: http: //propel.posterous. com/how-can-i-write-this-query-using-an-orm –