2

この問題の解決策は、magento のチュートリアルでは見つかりません。2 つの属性が関係している場合、カスタム モデルにブール OR 演算子を実装するにはどうすればよいですか? 公式チュートリアルの例では、1 つのフィールド sku に対する OR ブール値の使用のみを示しました。

$filter_a = array('like'=>'a%');
$filter_b = array('like'=>'b%');

Mage::getModel('catalog/product')
->getCollection()
->addFieldToFilter('sku', array($filter_a, $filter_b))
->getSelect();

これは、

WHERE e.sku like 'a%' or e.sku like 'b%' 

しかし、次のような条件を実行する必要がある場合はどうなりますか?

 WHERE   (e.sku like 'a%' or e.sku like 'b%')  or  (table_price.value >= '10' ) 

Magentoでこれを行うにはどうすればよいですか? ありがとう

4

1 に答える 1

2

構文が正しくありません。これを試してください。

Mage::getModel('catalog/product')
->getCollection()
->addAttributeToFilter(
    array(
        array('attribute'=>'firstname', 'like'=>'test%'),
        array('attribute'=>'lastname', 'like'=>'test%'),
    )
)

属性名を「sku」または任意の名前に置き換えることができます。各配列エントリはORされます。

于 2012-09-18T08:21:09.013 に答える