このコレクションに対して2つの異なる操作を実行するメソッドに1つのコレクションがあります。そのため、同じコレクションの2つの別々のコピーが必要になり、2つのコレクションの1つを元のコレクションに再度割り当てて返します。
これを簡単にするために、というオブジェクトコレクションがあるとし$collection
ます。
今、組み込みのMagentoコレクションのクローンがあるかどうかわからないので、PHPクローンで試しています。
$coll1 = clone $collection;
$coll2 = clone $collection;
今、私は元のコレクションのこれらの2つの別々のクローンで異なる操作を実行しようとしています。
$coll1->getSelect()->where('some where condition');
$coll2->getSelect()->where('some different where condition');
if($coll1->count() == 0) {
$collection = $coll2;
} else {
$collection = $coll1;
}
しかし、奇妙なことに、これらのクローン化されたコレクションには、where条件が割り当てられています!$ coll1の条件は、$ coll2の条件とともに$ coll2に適用され、その逆も同様です。
誰もこれを達成する方法を知っていますか?
ありがとう!
$collection->getSelect()
れ、コレクション自体には保存されません。