昨天我写了一些代码来提取产品集.这段代码运行良好,但是今天,代码doe snot工作,没有任何改变,我无法理解为什么它不会工作.
这就是我编码的内容
$collection = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('MPN')
->addAttributeToSelect('JAN')
->addAttributeToSelect('UPC')
->addFieldToFilter(array(
array('attribute'=>'type_id','eq'=>'simple')
))
->setPage(1,10);
$collection->load();
foreach($collection as $item)
{
echo print_r($item->getdata());
}
Run Code Online (Sandbox Code Playgroud)
昨天我能够看到包含我的MPN,JAN和UPC的产品列表(这些是后端的自定义属性).今天他们根本不负荷.这很奇怪,我想也许我对收藏的理解不如我想象的那么好.
任何帮助将非常感激.
编辑:
刷新magento缓存似乎让一切都恢复正常.这是否意味着集合有时会使用缓存,是否有某种方法可以编写代码以便它不使用缓存?
Iva*_*nyi 12
这取决于你在哪里使用你的收藏.如果在前端使用了集合并且启用了平面模式,那么您的属性将不可用,因为它们不包含在Flat索引中.
要将它们包含在flat索引中,您需要将以下XML配置添加到模块的config.xml文件中
<config>
<frontend>
<product>
<collection>
<attributes>
<MPN />
<JAN />
<UPC />
</attributes>
</collection>
</product>
</frontend>
</config>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,它将以平面模式提供.此外,通过向此XML节点添加属性,您的属性也将自动添加到前端的所有产品列表集合中.
玩Magento开发吧!