OR and语句addAttributeToFilter magento
我创建了以下代码OR and语句addAttributeToFilter magento,magento,Magento,我创建了以下代码 $todayDate = Mage::app()->getLocale()->date()->toString(Varien_Date::DATETIME_INTERNAL_FORMAT); $tomorrow = mktime(0, 0, 0, date('m'), date('d')+1, date('y')); $dateTomorrow = date('m/d/y', $tomorrow); $collection = Mage::getResou
$todayDate = Mage::app()->getLocale()->date()->toString(Varien_Date::DATETIME_INTERNAL_FORMAT);
$tomorrow = mktime(0, 0, 0, date('m'), date('d')+1, date('y'));
$dateTomorrow = date('m/d/y', $tomorrow);
$collection = Mage::getResourceModel('catalog/product_collection');
$collection->setVisibility(Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds());
$collection = $this->_addProductAttributesAndPrices($collection)
->addStoreFilter()
->addAttributeToFilter('special_price', array('neq' => ""))
->addAttributeToFilter('special_from_date', array('date' => true, 'to' => $todayDate))
->addAttributeToFilter('special_to_date', array('or'=> array(0 => array('date' => true, 'from' => $dateTomorrow), 1 => array('is' => new Zend_Db_Expr('null')))), 'left');
这很好用。但我现在想用OR语句。
我想我可以用这个来解决它:
$collection->addAttributeToFilter(array(
array('attribute'=> 'someattribute','like' => 'value'),
array('attribute'=> 'otherattribute','like' => 'value'),
array('attribute'=> 'anotherattribute','like' => 'value'),
));
但没有成功。
所以我的问题是如何添加或声明
$todayDate = Mage::app()->getLocale()->date()->toString(Varien_Date::DATETIME_INTERNAL_FORMAT);
$tomorrow = mktime(0, 0, 0, date('m'), date('d')+1, date('y'));
$dateTomorrow = date('m/d/y', $tomorrow);
$collection = Mage::getResourceModel('catalog/product_collection');
$collection->setVisibility(Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds());
$collection = $this->_addProductAttributesAndPrices($collection)
->addStoreFilter()
->addAttributeToFilter('special_price', array('neq' => ""))
->addAttributeToFilter('special_from_date', array('date' => true, 'to' => $todayDate))
->addAttributeToFilter('special_to_date', array('or'=> array(0 => array('date' => true, 'from' => $dateTomorrow), 1 => array('is' => new Zend_Db_Expr('null')))), 'left');
或
多谢各位
太好了,,
Lex检查以下链接
// Add OR condition:
$collection->addAttributeToFilter(array(
array(
'attribute' => 'field_name',
'in' => array(1, 2, 3),
),
array(
'attribute' => 'date_field',
'from' => '2000-09-10',
),
));
所以写下你的查询,据我所知,是
"....WHERE special_price <> "" AND special_from_date <= '2012-07-02' AND (special_to_date >= '2012-07-03' OR special_to_date IS NULL)..."
从Magento Wiki:
// Add OR condition:
$collection->addAttributeToFilter(array(
array(
'attribute' => 'field_name',
'in' => array(1, 2, 3),
),
array(
'attribute' => 'date_field',
'from' => '2000-09-10',
),
));
所以写下你的查询,据我所知,是
"....WHERE special_price <> "" AND special_from_date <= '2012-07-02' AND (special_to_date >= '2012-07-03' OR special_to_date IS NULL)..."