我一直在对我的magento安装进行一些修改以使其符合我的需要,但我来到了不少墙壁。这是我做过的一些事情,只是需要它作为我即将提出的问题的参考。
Magento: Add New Field to Credit Card Form
Magento: How to display customer's phone number on customer information field
Magento: How to Add Order / Payment information to Admin-BackEnd
Magento: How to save data to order_payment and quote_payment
所以我遵循了一些关于添加自定义属性的教程,但我对如何运行脚本以将属性添加到正确的表格感到困惑。
这就是原因。
我注意到已经带有magento的“电话”字段出现在几张桌子上。
eav_attributes(4个实例)然后电话字段的attribute_id也出现在其他表上,它的所有4个实例。现在我已经添加了一个移动电话号码字段,如我之前的问题所示,但我不知道如何在所有具有必要值的表格中显示它。
我现在有限的资源提供更详细的信息,但如果有人能理解我想解释的内容,请帮助我。
谢谢。
答案 0 :(得分:0)
虽然有所有EAV属性和实体共有的类和表(例如eav_attribute
表和Mage_Eav_Model_Entity_Setup
),但每个EAV实体可能都有一个额外的属性信息表。通用设置资源类Mage_Eav_Model_Entity_Setup
具有_prepareValues()
方法,该方法为所有通用属性元数据(即eav_attribute
表中的列)设置默认值。在Mage_Customer
的情况下,有customer_eav_attribute
表等。 Mage_Customer
安装资源类Mage_Customer_Model_Entity_Setup
会覆盖此方法,调用父方法并添加存储在customer_eav_attribute
表中的更多元数据默认值。
因此,虽然设置资源文件可以在任何上下文(设置类实例)中执行,但如果它正在修改其他模块的EAV配置,则需要使用正确的类来执行此操作。
<?php
$installer = Mage::getResourceModel('customer/setup','customer_setup');
$installer->startSetup();
$installer->addAttribute(
'customer',
'new_attribute_code',
array('label'=>'Label','type' => 'text')
)
$installer->endSetup();
根据添加到客户/客户地址表单的需要,还有其他工作要做。可以在Mage/Customer/sql/customer_setup/
中找到此类工作的参考资料。