2016-04-14 52 views
0

我想要我的結果來自name比賽description比賽。如何結合產品集合中的SQL OR條件? Magento的?

$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)); 

這些都是我需要合併

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

你可以用這種方式WHERE((名稱LIKE '值')或(描述LIKE'value')OR(anotherattribute LIKE'value')).....請參閱此鏈接http://magento.stackexchange.com/questions/7908/multi-conditionals-or-and-and-inside-and -in-addattributetofilter –

回答

0

您可以使用下面的代碼爲OR條件的兩個具體線路。

$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 . '%''), 
    ) 
); 

這將輸出一個WHERE的格式條款:

WHERE ((name LIKE ''%' . $queryText . '%'') OR (description LIKE ''%' . $queryText . '%'') 
相關問題