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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hab! Dank dieser SO beantworten. Bedarf eine weitere hinzufügen-array nur für die
IS NULL
- Klausel. Nun der code ist:- Und Ausgänge:
BEARBEITEN
Geändert
banner_start_date
wie ich war mit von statt zu und so die Zeit war falsch abgerechnet und es wurden keine Daten zurückgegeben.InformationsquelleAutor Yaroslav