collections - Magento:如何将两个产品集合合二为一?

标签 collections magento

如果我有两个产品系列,有没有办法将它们合并成一个?

例如(我的最终意图实际上并不是要收集 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/

相关文章:

java - 带有流 Spring 引导的 DTO 映射

java - 为什么是Arraylist<>。 sublist() 未映射到用户定义的数据类型 arraylist<>?

Magento topSearch 在模板中不起作用

php - magento:显示禁用的产品

java - 使用 Java 自动登录 Magento OAuth

Magento - 电子邮件发货 = 默认

Java 集合。添加(E 对象),但删除(对象对象)

java - Java 中的 Collections.binarySearch()

java - 以对象列表为键的 HashMap

mysql - 获取产品级别最低的子类别