カスタム テーブルを含むコレクションに日付フィルターを設定するのに苦労しています。こことここと他の場所を検索しましたが、まだ必要なものを取得できません。NULL
問題は、結果セットに値を追加できないことです。
これまでのところ、いくつかの試行錯誤テスト後の私の現在のコード:
$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());
このコードは、次の SQL スニペットを出力します。
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)
条件を追加するためにいくつかの異なるオプションを試しましたNULL
が、次のようなものを取得する方法はありません:
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: Magento にはBETWEEN
オペレーターがいaddfieldtofilter
ますか?