Eu tenho uma coleção em um método em que desejo executar duas operações diferentes nessa coleção. Portanto, quero duas cópias separadas da mesma coleção e atribua uma das duas coleções à coleção original novamente e devolva-a.
Para simplificar, suponha que eu tenha uma coleção de objetos chamada $collection
.
Agora, estou tentando com a clonagem de PHP, pois não sei se há alguma clonagem de coleção do Magento embutida ou não.
$coll1 = clone $collection;
$coll2 = clone $collection;
Agora, estou tentando executar operações diferentes nesses dois clones separados da coleção original, algo assim.
$coll1->getSelect()->where('some where condition');
$coll2->getSelect()->where('some different where condition');
if($coll1->count() == 0) {
$collection = $coll2;
} else {
$collection = $coll1;
}
Mas o mais estranho é que essas duas coleções clonadas têm as condições where atribuídas! A condição $ coll1 é aplicada a $ coll2 junto com a condição de $ coll2 e vice-versa.
Alguém sabe como alcançar isso?
Obrigado!
$collection->getSelect()
e não na coleção em si.