2016-11-10 94 views
0

我創建了一個用於客戶註冊的觀察者。在觀察者中保存自定義客戶屬性

它裏面我有以下代碼段。

public function customerRegistrationSuccess($observer) 
{ 
     $customer = $observer->getEvent()->getCustomer(); 
     $deviceName="web"; 
    //log written 
     $customer->setDevice_used($deviceName); 
     $customer->save(); 
     //log written again 
} 

和我有代碼的安裝文件:

<?php $installer = $this; 
     $installer->startSetup(); 
     $this->addAttribute('customer', 'device_used', array(
'label'  => 'Device Used', 
'visible' => 1, 
'input'  => 'text', 
'type'  => 'varchar', 
'required' => 0, 
"unique" => 0, 
'position' => 120, 
'sort_order'=> 80, 

)); 
$attribute = Mage::getSingleton('eav/config')->getAttribute('customer', 'device_used'); 
    $attribute->setData('used_in_forms', array(
'adminhtml_customer', 
'checkout_register', 
'customer_account_create', 
'customer_account_edit', 
'adminhtml_checkout' 
));  
      $attribute->setData('is_user_defined', 0); 
$attribute->save(); 

$installer->endSetup(); 
?> 

但正在創建沒有這樣的屬性。什麼可能是錯的?

在此先感謝。

回答

0

我認爲您在customerRegistrationSuccess中的設置調用不正確。它應該是

$customer->setDeviceUsed($deviceName); 

另外,您可以使用

$customer->setData('device_used',$deviceName); 

都達到同樣的事情。

如果這不起作用,您需要檢查安裝腳本是否正確運行。檢查core_resource數據庫表以查看是否有模塊的條目並從此處開始。