我有一个产品属性,我已将范围设置为网站(因此理论上它在每个定义的网站上都会有所不同。)
但是出于某种原因,当我在addAttributeToFilter()中使用它时,它似乎忽略了它。
让我告诉你我正在使用的代码:
$total_products_obj = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('discontinued', array('neq' => 1) )
->addAttributeToFilter('video_url', array('notnull' => '') );
我遇到问题的属性是video_url属性。就像我说它的范围设置为网站,其中已停止是全局属性。
我对网站属性做的并不多,为了让这个属性不被忽略,我还需要做些什么吗?现在我收到所有已停产的产品的集合不等于1。
答案 0 :(得分:4)
我找到了一个解决方法。使用该方法的数组版本,实际上用于创建“OR”条件。这会生成正确的SQL。
E.g。
->addAttributeToFilter( array(
array( 'attribute'=>'video_url', 'notnull' => '' )
))
它有点难看,但允许你仍然使用平面目录。
答案 1 :(得分:0)
我关闭了使用平面目录产品,它开始按预期工作。