2014-09-19 36 views
2

我正在嘗試構建搜索腳本以從客戶集合中檢索條目。訣竅是正常的「或」條件僅適用於第一個條目。Magento:如何在客戶集合中以編程方式搜索

這是我到目前爲止的代碼:

$customers = Mage::getResourceModel('customer/customer_collection') 
     ->addAttributeToSelect('*'); 

    if($_searchTerm = $this->getRequest()->getParam('q')){ 
     $customers->addAttributeToFilter(
      array(
       array('attribute' => 'firstname', 'like' => $_searchTerm), 
       array('attribute' => 'lastname', 'like' => $_searchTerm), 
       array('attribute' => 'email', 'like' => '%' . $_searchTerm . '%'), 
       array('attribute' => 'phone', 'like' => '%' . $_searchTerm . '%'), /* valid field in my collection*/ 
      ) 
     ); 
    } 

我試過用通配符「%」,但也仍然沒有正確的結果。 我很可能在這裏錯過了一些東西。

謝謝。

+1

它看起來對我很好。當我測試上述結果查詢結束WHERE ...((at_firstname.value LIKE'TEST')或(at_lastname.value LIKE'TEST')或(e.email LIKE'%TEST%')或(at_phone .value LIKE'%TEST%'))'這是預期的。究竟發生了什麼問題? – clockworkgeek 2014-09-19 11:01:42

+0

@clockworkgeek我已經使用 - > getSelect()方法來顯示「選擇」SQL查詢,一切看起來很正常。我有2個客戶:Ion和Daniel。當我使用腳本時,它的行爲就像他只在「Ion」客戶中搜索而不是「Daniel」。所有結果都顯示給「Ion」客戶。 – aki 2014-09-19 11:05:48

回答

0

這次我的愚蠢超過了我。我在查詢中使用了另一個屬性,Magento在過濾時遇到了一些問題,這是使用模塊創建的自定義屬性。感謝@clockworkgeek支持我。

相關問題