이 컬렉션에 대해 두 가지 다른 작업을 수행하려는 방법에 하나의 컬렉션이 있습니다. 따라서 동일한 컬렉션의 두 복사본을 별도로 원한 다음 두 컬렉션 중 하나를 원래 컬렉션에 다시 할당하고 반환합니다.
이것을 간단하게하기 위해이라는 객체 컬렉션이 있다고 가정합니다 $collection
.
이제 Magento 컬렉션 복제가 내장되어 있는지 여부를 알 수 없으므로 PHP 복제로 시도하고 있습니다.
$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;
}
그러나 이상한 점은이 복제 된 컬렉션 모두에 지정된 위치 조건이 있다는 것입니다. $ coll1 조건은 $ coll2의 조건과 함께 $ coll2에 적용되며 그 반대도 마찬가지입니다.
누구든지 이것을 달성하는 방법을 알고 있습니까?
감사!
$collection->getSelect()
컬렉션 자체가 아닌 위치에 대한 정보가 저장 됩니다.