Tengo una colección en un método donde quiero realizar dos operaciones diferentes en esta colección. Por lo tanto, quiero dos copias separadas de la misma colección, y luego asignar una de las dos colecciones a la colección original nuevamente y devolverla.
Para simplificar esto, supongamos que tengo una colección de objetos llamada $collection
.
Ahora, lo estoy intentando con la clonación de PHP, ya que no sé si hay alguna clonación de colección de Magento incorporada o no.
$coll1 = clone $collection;
$coll2 = clone $collection;
Ahora estoy tratando de realizar diferentes operaciones en estos dos clones separados de la colección original, algo así.
$coll1->getSelect()->where('some where condition');
$coll2->getSelect()->where('some different where condition');
if($coll1->count() == 0) {
$collection = $coll2;
} else {
$collection = $coll1;
}
Pero lo extraño es que ambas colecciones clonadas tienen las condiciones asignadas. La condición $ coll1 se aplica a $ coll2 junto con la condición de $ coll2 y viceversa.
¿Alguien sabe como lograr esto?
¡Gracias!
$collection->getSelect()
y no en la colección misma.