2016-04-14 2 views
0

私の結果はnameと一致するまたはdescriptionのいずれかになります。Product CollectionでSQL OR条件を組み合わせる方法は?マジェント?

$custom_collection = Mage::getModel('catalog/product')->getCollection() 
    ->addAttributeToSelect('*') 
    ->addAttributeToSelect('type') 
    ->addAttributeToSelect('price') 
    ->addAttributeToFilter(array('attribute' => 'name', 'like' => '%' . $queryText . '%')) 
    ->addAttributeToFilter(array('attribute' => 'description', 'like' => '%' . $queryText . '%')) 
    ->addFieldToFilter('attribute_set_id', array(11, 4)); 

これらは、私はあなたがのためのコードOR条件の下に使用することができます

->addAttributeToFilter(array('attribute' => 'name', 'like' => '%' . $queryText . '%')) 
->addAttributeToFilter(array('attribute' => 'description', 'like' => '%' . $queryText . '%')) 
+1

あなたはこのようWHERE((名LIKE '値')OR(を使用することができますdescription LIKE 'value')OR(anotherattribute LIKE 'value')).....このリンクを参照してください。http://magento.stackexchange.com/questions/7908/multi-conditionals-or-and-and-inside-and -in-addattributetofilter –

答えて

0

をマージする必要がある特定の2つのラインです。

$custom_collection->addAttributeToFilter(
     array(
      array('attribute'=> 'name','like' => '%' . $queryText . '%'), 
      array('attribute'=> 'description','like' => '%' . $queryText . '%') 
     ) 
    ); 
0

次のことを試してみてください。

$collection->addAttributeToFilter(
array(
    array('attribute'=> 'name','like' => ''%' . $queryText . '%''), 
    array('attribute'=> 'description','like' => ''%' . $queryText . '%''), 
    ) 
); 

形式の句この意志の出力A:

WHERE ((name LIKE ''%' . $queryText . '%'') OR (description LIKE ''%' . $queryText . '%'') 
関連する問題