Mam jedną kolekcję w metodzie, w której chcę wykonać dwie różne operacje na tej kolekcji. Tak więc chcę dwie osobne kopie tej samej kolekcji, a następnie ponownie przypisać jedną z dwóch kolekcji do oryginalnej kolekcji i zwrócić ją.
Aby to uprościć, załóżmy, że mam kolekcję obiektów o nazwie $collection
.
Teraz próbuję z klonowaniem PHP, ponieważ nie wiem, czy jest wbudowane klonowanie kolekcji Magento, czy nie.
$coll1 = clone $collection;
$coll2 = clone $collection;
Teraz próbuję wykonać różne operacje na tych dwóch osobnych klonach oryginalnej kolekcji, coś w tym rodzaju.
$coll1->getSelect()->where('some where condition');
$coll2->getSelect()->where('some different where condition');
if($coll1->count() == 0) {
$collection = $coll2;
} else {
$collection = $coll1;
}
Ale dziwne jest to, że obie sklonowane kolekcje mają oba przypisane warunki! Warunek $ coll1 jest stosowany do $ coll2 wraz z warunkiem $ coll2 i odwrotnie.
Czy ktoś wie, jak to osiągnąć?
Dzięki!
$collection->getSelect()
a nie w samej kolekcji.