我创建了一个客户注册观察员。
在其中我有以下代码段。
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 :(得分:0)
我认为您在customerRegistrationSuccess中的设置调用不正确。它应该是
$customer->setDeviceUsed($deviceName);
或者你可以使用
$customer->setData('device_used',$deviceName);
两者都达到了同样的目的。
如果这不起作用,您需要检查安装脚本是否正确运行。检查core_resource数据库表以查看是否有模块的条目并从那里开始。