Magento, filter-Auflistung nach Datum, Zeitraum und enthalten null-Werte

Ich habe eine schwierige Zeit der Ansiedlung bis einen Daten filter auf eine Sammlung mit benutzerdefinierten Tabellen. Gesucht haben hier und hier und einige andere Orte, aber immer noch nicht, was ich brauche. Das problem ist, dass ich nicht fügen Sie die NULL Werte des Resultsets.

Soweit mein Aktueller code nach einigen trial-and-error-tests:

$myBannersCollection = Mage::getModel('banners/bannersadmin')->getCollection()
                   ->addfieldtofilter('banner_prod_id',$currentProdID)
                   ->addfieldtofilter('banner_start_date', 
                       array(
                         array('from' => Mage::getModel('core/date')->gmtDate()),
                                 'banner_start_date' => null))
                   ->addfieldtofilter('banner_end_date',
                       array(
                         array('gteq' => Mage::getModel('core/date')->gmtDate()),
                                 'null' => true)
                                  );
var_dump((string) $myBannersCollection->getselect());

Dieser code-Ausgänge das folgende sql-snippet:

SELECT `main_table`.* 
  FROM `dts_banners_admin` AS `main_table` 
 WHERE (banner_prod_id = '16')
  AND (((banner_start_date >= '2012-11-28 14:39:13') OR (banner_start_date='')))
   AND (banner_end_date IS NULL)

Versucht haben mehrere verschiedene Optionen zum hinzufügen von NULL Zustand, aber keine Möglichkeit, die ich bekommen kann, so etwas wie:

SELECT `main_table`.* 
  FROM `dts_banners_admin` AS `main_table` 
 WHERE (banner_prod_id = '16')
  AND (((banner_start_date>='2012-11-28 14:39:13') OR (banner_start_date IS NULL)))
   AND ((banner_end_date >= '2012-11-28 14:39:13') OR (banner_end_date IS NULL))

PS: hat Magento hat einen BETWEEN Betreiber auf die addfieldtofilter?

InformationsquelleAutor Yaroslav | 2012-11-28

Schreibe einen Kommentar