2017-04-20 173 views
0

我在後端magento中創建了一個客戶屬性,但我想向用戶顯示此屬性,以便他可以在前端更改其值。我的輸入字段正顯示在前端,但值不存在。我無法獲得這個價值。我發現我需要顯示的值在apscustomer_entity_varchar表中,並且該列被稱爲「值」。我如何從該表中獲得該值?我試圖這樣做:從customer_entity_varchar獲取價值 - Magento

$collection = Mage::getModel('eav/entity_attribute')->getCollection(); 
foreach ($collection as $data) { 
    return $data; 
} 

但它沒有工作,所以我用SQL代碼,它的工作。不過,我知道在Magento中這不是一個好方法。我所做的是一樣的東西:

$connection = Mage::getSingleton('core/resource')->getConnection('core_read'); 
$sql  = "SELECT * FROM `apscustomer_entity_varchar ` WHERE `entity_id`='$id'"; 
$rows  = $connection->fetchAll($sql); 

我怎樣才能從我的apscustomer_entity_varchar表中獲取值列在Magento的方式,使用getModel?

回答

0

您需要檢索會話的客戶,然後你可以得到你想要的屬性:

Mage::getSingleton('customer/session')->getData('attributeName'); 
Mage::getSingleton('customer/session')->getAttributeName(); //Magic getter 

其中的attributeName是你想要得到的值的屬性的名稱。

0

我發現如何做到這一點:D

這其實很簡單。即使這是一個自定義的客戶屬​​性(在Magento管理面板中創建),我需要獲取不使用'eav/entity_attribute'模型的屬性,而是使用'客戶/客戶'模型。所以,我只是需要做的是:

$customer_data = Mage::getModel('customer/customer')->load($customer_id)->getData(); 
echo $customer_data['attributeThatYouWant']; 

如果你不知道你是什麼屬性,你可以看看Magento管理面板下的客戶/管理的屬性,或者您可以使用獲得的模型後的名稱:

var_dump($customer_data); 

現在您可以獲取所有客戶屬性的名稱。