Saya memiliki satu koleksi dalam metode di mana saya ingin melakukan dua operasi berbeda pada koleksi ini. Jadi, saya ingin dua salinan terpisah dari koleksi yang sama, dan kemudian menetapkan satu dari dua koleksi untuk koleksi asli lagi dan mengembalikannya.
Untuk mempermudah ini, anggaplah saya memiliki koleksi objek yang disebut $collection
.
Sekarang, saya mencobanya dengan kloning PHP karena saya tidak tahu apakah ada kloning koleksi Magento bawaan atau tidak.
$coll1 = clone $collection;
$coll2 = clone $collection;
Sekarang saya mencoba untuk melakukan operasi yang berbeda pada dua klon yang terpisah dari koleksi asli, semacamnya.
$coll1->getSelect()->where('some where condition');
$coll2->getSelect()->where('some different where condition');
if($coll1->count() == 0) {
$collection = $coll2;
} else {
$collection = $coll1;
}
Namun yang aneh adalah, kedua koleksi hasil kloning ini memiliki kedua kondisi yang ditentukan! Kondisi $ coll1 diterapkan ke $ coll2 bersama dengan kondisi $ coll2, dan sebaliknya.
Adakah yang tahu bagaimana mencapainya?
Terima kasih!
$collection->getSelect()
dan tidak dalam koleksi itu sendiri.