基本的なレベルで実行できるMagentoコレクションに複数のフィルターを追加しようとしています。私が本当にやりたいのは、任意のレベルの深さである可能性のあるいくつかのネストされたフィルターによってコレクションをフィルターできるようにすることです。たとえば、次のようなコードを使用して複数のフィルターを追加できることを知っています。
$collection->addAttributeToFilter('example_attribute', array('eq' => 1));
私ができるようにしたいのは、相互にネストできるフィルター(AND&OR)を用意することです。Magentoコレクションでこれが可能かどうかはわかりませんが、オンラインで例を見つけることができませんでした。
詳細と例を示すために:同等のSQL(必要な選択されたフィールドとJOINSを無視する)が次のようになるコレクションをフィルター処理する必要があります。
SELECT .........
WHERE
(attribute1 = 1
OR
atttribute2 = 'yes')
AND
qty > 5
AND(
(attribute3 != 'no'
AND
attribute4 = 50 )
OR
(attribute3 != 'no'
AND
attribute6 > 50 )
)
これは簡単な大まかな例ですが、基本的な問題は、任意の数のフィルターをネストする方法です。