複数の入れ子ORとANDの条件で商品コレクションをフィルタリングする必要があります。私は純粋なSQL文を使用してこれを実行しようとしましたが、私はそれを行うことができると思いますが、今日の仕事を終えているので、ここの誰かがより良い解決策を知っていると思っていたので、明日目を覚まして答えます。addAttributeToFilterなどの関数を使用してMagentoコレクションの入れ子になったWhere節を作成する方法
私の問題はMage_Catalog_Model_Resource_Eav_Mysql4_Product_Collectionクラスによって提供さaddAttributeToFilter()メソッドが唯一の巣にwhere句を2回、それを可能にしていることである - ので、私は
(cond1 OR cond2 OR cond3) AND (cond4 OR cond5) AND cond6
なく
cond1 AND (cond2 OR(cond3 AND cond4))
を持つことができます(または私はそれを行う方法を知らない)。
純粋なSQL文でプロダクトIDを取得し始めたので、「in」条件付きでaddAttributeToFilterを追加することができます。しかしMagento dbはそんなに混乱しています! googolテーブルを使ってすべての関係をトレースする必要があるまで、それは問題ありません。
私はZendコレクションオブジェクトに必要な機能がいくつかあると思っていましたが、私はZend(私の悪い)にあまり馴染んでいません。
だから、誰も私は300行のSQLクエリを書くことから救うだろうか?私はいつもそれをしたいと思っていましたが、私はそれを少し延期することができると思います:)。
乾杯、 Maćko
EDIT: 私は製品に関する情報を取得する必要がありますし、同様に、この組み合わせ状態にサードパーティのモジュールからのいくつかのカスタムオプションがあります:私は私がしなければならないだろうと思い対象年齢などそれはPHPの側では、私はそれがあまり好きではない - 今のところ、最初のフィルタリングが可能な37の製品がありますが、もしこれらの初期基準に合致する1000の製品があればどうなりますか?
私は問題の詳細については、チップのおかげで提供します。 – Nebril