Bu koleksiyon üzerinde iki farklı işlem gerçekleştirmek istediğim bir yöntemde bir koleksiyon var. Bu yüzden, aynı koleksiyonun iki ayrı kopyasını istiyorum ve sonra iki koleksiyondan birini tekrar orijinal koleksiyona atayıp iade ediyorum.
Bunu basitleştirmek için, bir nesne koleksiyonum olduğunu varsayalım $collection
.
Şimdi, herhangi bir Magento koleksiyonu dahili klonlama ya da değil olup olmadığını bilmiyorum gibi PHP klonlama ile çalışıyorum.
$coll1 = clone $collection;
$coll2 = clone $collection;
Şimdi orijinal koleksiyonun bu iki ayrı klonu üzerinde farklı işlemler yapmaya çalışıyorum.
$coll1->getSelect()->where('some where condition');
$coll2->getSelect()->where('some different where condition');
if($coll1->count() == 0) {
$collection = $coll2;
} else {
$collection = $coll1;
}
Ama garip olan şey, bu klonlanmış koleksiyonların her ikisinin de nerede verildiği koşulları var! $ coll2 koşulu, $ coll2 koşuluyla birlikte $ coll2 öğesine uygulanır ve bunun tersi de geçerlidir.
Bunu nasıl başaracağını bilen var mı?
Teşekkürler!
$collection->getSelect()
Koleksiyonun kendisinde değil , nerede saklandığına dair bilgiler .