如果我有两个产品系列,有没有办法将它们合并成一个?
例如(我的最终意图实际上并不是要收集 2 只猫,这只是为了说明问题):
$collection1 = Mage::getModel('catalog/category')->load(148)->getProductCollection();
$collection2 = Mage::getModel('catalog/category')->load(149)->getProductCollection();
$merged_collection = merge_collections($collection1,$collection2);
任何帮助,将不胜感激!
最佳答案
假设您希望组合在一起的项目属于相同类型并且存在于数据库中,那么您可以执行以下操作:
$collection1 = Mage::getModel('catalog/category')->load(148)->getProductCollection();
$collection2 = Mage::getModel('catalog/category')->load(149)->getProductCollection();
$merged_ids = array_merge($collection1->getAllIds(), $collection2->getAllIds());
// can sometimes use "getLoadedIds()" as well
$merged_collection = Mage::getResourceModel('catalog/product_collection')
->addFieldToFilter('entity_id', array('in' => $merged_ids))
->addAttributeToSelect('*');
在这里我知道按
entity_id
过滤因为这是产品的关键字段,就像大多数实体类型一样,一些平面表具有不同的主键。通常,您可以使用该系列的 getIdFieldName()
之一来概括这一点。方法。在这种情况下,产品是一个不好的例子,因为它的 ID 字段名称没有正确填写。
关于collections - Magento:如何将两个产品集合合二为一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5434996/