2010-06-23 58 views
5

我有一個表,我的自定義模塊與下列:加入收藏獲取客戶名稱(管理網格)

--------------- 
| custom_table| 
--------------- 
| id 
| seller_id 
| buyer_id 
| ... 
--------------- 

seller_id -> customer_enity [entity_id] 
buyer_id -> customer_entity [entity_id] 

現在我想顯示在管理網格佈局,賣方名稱和買方名稱。 我無法弄清楚如何從客戶實體中檢索賣家姓名和買家姓名。 但我知道如何獲取他們的電子郵件爲:

protected function _prepareCollection() 
{ 
    $collection = Mage::getModel('custommodule/custommodule')->getCollection(); 
    $collection->getSelect() 
     ->join(array('ce1' => 'customer_entity'), 'ce1.entity_id=main_table.seller_id', array('seller_email' => 'email')) 
     ->join(array('ce2' => 'customer_entity'), 'ce2.entity_id=main_table.buyer_id', array('buyer_email' => 'email')); 
    #echo $collection->getSelect()->__toString(); 
    $this->setCollection($collection); 
    return parent::_prepareCollection(); 
} 

這上面的代碼工作正常。但我想顯示他們的名字而不是電子郵件。 任何機構可以幫助我修改這個集合嗎?

任何幫助,非常感謝。 感謝

回答

3

您需要customer_entity_varchar表加入其中,名稱是商店,
和attribute_id = 5,5,因爲它是屬性名稱的表格中eav_attribute的ID,所有屬性都是商店
希望幫助你

1

您可以使用此代碼來獲得顧客的名字和姓氏

$this->_infoCollection = Mage::getModel('custommodule/custommodule')->getCollection() 
    ->addFieldToFilter('ce2.attribute_id', array('eq' => array(5))) 
    ->addFieldToFilter('ce3.attribute_id', array('eq' => array(7))); 

    $this->_infoCollection->getSelect() 
    ->join(array('ce1' => 'customer_entity'), 'ce1.entity_id=main_table.customer_id', array('customer_email' => 'email')) 
    ->join(array('ce2' => 'customer_entity_varchar'), 'ce2.entity_id=ce1.entity_id', array('customer_first_name' => 'value')) 
    ->join(array('ce3' => 'customer_entity_varchar'), 'ce3.entity_id=ce1.entity_id', array('customer_last_name' => 'value'));