我在模块更新中添加了新的客户字段:
$installer = $this;
$installer->startSetup();
$_attributeToAdd = [
'recordtype'=>[
'input'=>'select',
'type'=>'varchar',
'label'=>Mage::helper('company_partner')->__('String'),
'visible'=>1,
'required'=>1,
'user_defined'=>1,
'global'=>1,
'visible_on_front'=>1,
'source'=>'company_partner/entity_recordtype'
],
'court'=>[
'input'=>'text',
'type'=>'varchar',
'label'=>Mage::helper('company_partner')->__('String),
'visible'=>1,
'required'=>0,
'user_defined'=>1
],
'krs'=>[
'input'=>'text',
'type'=>'varchar',
'label'=>Mage::helper('company_partner')->__('String'),
'visible'=>1,
'required'=>0,
'user_defined'=>1
],
...other fields
];
$_order=2200;
foreach($_attributeToAdd as $_key=>$_value){
if(isset($setup)){
unset($setup);
}
if(isset($_oAttribute)){
unset($_oAttribute);
}
$setup = Mage::getModel('customer/entity_setup', 'core_setup');
$_entitytypeId = $setup->getEntityTypeId('customer');
$_attributeTypeId = $setup->getDefaultAttributeSetId($_entitytypeId);
$_attributeGroupId = $setup->getDefaultAttributeGroupId($_entitytypeId,$_attributeTypeId);
$setup->addAttribute('customer',$_key,$_value);
$setup->addAttributeToGroup($_entitytypeId,$_attributeTypeId,$_attributeGroupId,$_key,$_order);
Mage::getSingleton('eav/config')->getAttribute('customer', $_key)->setData('used_in_forms', array('adminhtml_customer','customer_account_create','customer_account_edit','checkout_register','unizeto_partner_account_edit','magestore_affiliateplus_account_edit'))->save();
$_oAttribute = Mage::getSingleton('eav/config')->getAttribute('customer',$_key);
$_oAttribute->setData('used_in_forms',['adminhtml_customer']);
$_oAttribute->save();
$_order++;
}
$installer->endSetup();
我也试过
$_oAttribute->setData('used_in_forms',['adminhtml_customer','company_module']);
我在管理面板(添加/编辑客户)中看到了这个属性,但在我自己的模块中我不能在表单/动作控制器中使用(在管理数据中看不到文件)。
我不知道为什么。
我的模块从其他非核心 magento 模块覆盖表单和动作控制器。