我有一个方法中的一个集合,我想对该集合执行两个不同的操作。因此,我想要同一集合的两个单独的副本,然后将两个集合之一再次分配给原始集合并返回它。
为简单起见,假设我有一个名为的对象集合$collection
。
现在,我正在尝试使用PHP克隆,因为我不知道是否有内置的Magento集合克隆。
$coll1 = clone $collection;
$coll2 = clone $collection;
现在,我试图对原始集合的这两个单独的克隆执行不同的操作,例如。
$coll1->getSelect()->where('some where condition');
$coll2->getSelect()->where('some different where condition');
if($coll1->count() == 0) {
$collection = $coll2;
} else {
$collection = $coll1;
}
但是奇怪的是,这两个克隆的集合都分配了where条件!$ coll1条件与$ coll2的条件一起应用于$ coll2,反之亦然。
有谁知道如何实现这一目标?
谢谢!
$collection->getSelect()
集合中,而不是保存在集合本身中。