这样做:
Mage::getModel('catalog/product')->loadByAttribute('ordernumber', 500);
给我一个产品的对象,这意味着具有自定义属性(ordernumber
)的所有内容都可以。
尽管如此:
Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('ordernumber')
->addAttributeToFilter('ordernumber', 500);
返回一个集合,但是一个空集合 - 没有项目。它们应该是3.几个小时前它起作用了。现在它停止了工作,我没有改变任何有关集合或属性的内容。我不知道问题可能是什么......
Yes
Usied in Product Listing
答案 0 :(得分:1)
如果您在前端使用它并且启用了平面目录,则您的代码可能无效
为了使其有效,您有两种可能性:
选项1:
使属性ordernumber
在产品列表中使用。在后端编辑属性并将标记Used in product listing
设置为Yes
。需要重新索引。
选项2:
直接使用eav集合:
Mage::getResourceModel('catalog/product_collection')
->addAttributeToSelect('ordernumber')
->addAttributeToFilter('ordernumber', 500);
我推荐第一种方法。
答案 1 :(得分:0)
请确保属性Used in Product Listing
的{{1}}选项设置为yes
。
之后清除缓存。希望这会奏效。
答案 2 :(得分:0)
请使用
$products = Mage::getModel('catalog/product')->loadByAttribute('ordernumber', '500');
另一种方式
Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*')
->addFieldToFilter('ordernumber','500')