我只知道如果我有一个product_collection(例如在目录页面中生成的集合)
// event catalog_product_collecion_after_load $ productCollection = $ observer-> getEvent() - > getCollection();
如果我从这个系列中取出一个项目,我将它与相对模型进行比较 $ _product = Mage :: getModel('catalog / product') - > load($ item-> getEntityId());
这个同一实体的2个实体有不同的属性!
我在平面目录模式下工作。 为什么系列产品与产品型号不同? 我想知道这是否是正确的行为,如果它是如何在两个对象中具有相同的属性!
抱歉,但是magento非常黑暗:(答案 0 :(得分:1)
因为Mage::getModel('catalog/product')->load($item->getEntityId());
加载了产品的所有属性,并且集合仅加载与情境不同的指定属性。您可以在app/code/core/Mage/Catalog/etc/config.xml
attributes
找到(CTRL + F),然后您将看到产品集合的所有默认加载属性的列表。您还可以在模块中或直接在Catalog config.xml中更改它们。但是除了调试
app/code/core/Mage/Catalog/etc/config.xml
更改某些内容并不是最好的主意
答案 1 :(得分:0)
对于具有flat_mode的catalog_product_collection,更复杂的是向项目集合添加属性。 产品项目中的属性是catalog_product_flat表与产品实体的EAV属性之间的连接。
所以,在产品型号中:
在这些属性中,我们肯定会有其他属性,我想在其他方面添加。
现在,哪些属性在catalog_product_flat中? 您在magento管理属性中检查为“在产品列表中使用”的属性很简单! :)
但在某些属性中,您无法更改此选项,具体取决于您选择的类型。属性类型图像没有“在产品列表中使用”标志,因此如果您想在产品列表中添加新图像,则必须修改catalog_eav_attribute。
好吧,我花了两天时间才知道这一点,我希望它对其他不幸的magento开发者有用。 :)
Magento 1.5版