Magento:如何正确地将自定义属性安装到DB表中?
我已经做了一些修改,我的magento安装,使其符合我的需要,但我来了不少墙。这是我所做的一些事情,以备我接下来的问题需要参考 因此,我已经学习了一些关于添加自定义属性的教程,但对于如何运行脚本将属性添加到正确的表中,我感到困惑 原因如下 我注意到magento已经出现的“电话”字段出现在几个表上 eav_属性(4个实例)然后电话字段的属性_id也会出现在其他表中,所有4个实例都是如此。现在,我已经添加了一个移动电话号码字段,如我前面的问题所示,但我不知道如何使它以必要的值显示在所有这些表中 我现在的资源有限,无法提供更详细的信息,但如果有人能理解我试图解释的内容,请帮助我 谢谢。回答Magento:如何正确地将自定义属性安装到DB表中?,magento,Magento,我已经做了一些修改,我的magento安装,使其符合我的需要,但我来了不少墙。这是我所做的一些事情,以备我接下来的问题需要参考 因此,我已经学习了一些关于添加自定义属性的教程,但对于如何运行脚本将属性添加到正确的表中,我感到困惑 原因如下 我注意到magento已经出现的“电话”字段出现在几个表上 eav_属性(4个实例)然后电话字段的属性_id也会出现在其他表中,所有4个实例都是如此。现在,我已经添加了一个移动电话号码字段,如我前面的问题所示,但我不知道如何使它以必要的值显示在所有这些
- 使用实体模块的设置资源类执行的设置脚本
EAV_属性
表和Mage_EAV_模型_实体_设置
),但每个EAV实体可能有一个附加的属性信息表。通用设置资源类Mage\u Eav\u Model\u Entity\u setup
有一个\u prepareValues()
方法,该方法为所有通用属性元数据(即Eav\u属性
表中的列)设置默认值。在Mage\u Customer
的情况下,除其他外,还有Customer\u eav\u属性表。Mage\u Customer
setup资源类Mage\u Customer\u Model\u Entity\u setup
覆盖此方法,调用父方法并添加存储在Customer\u eav\u属性
表中的更多元数据默认值
因此,尽管安装资源文件可以在任何上下文(安装类实例)中执行,但如果它正在修改其他模块的EAV配置,则需要使用正确的类来执行
<?php
$installer = Mage::getResourceModel('customer/setup','customer_setup');
$installer->startSetup();
$installer->addAttribute(
'customer',
'new_attribute_code',
array('label'=>'Label','type' => 'text')
)
$installer->endSetup();
非常感谢您的回复。我将为必要的属性编写一个设置脚本,并尝试一下,希望它能正常工作。手动添加/删除数据库中的值并不完全是我想做的事情,但我不确定什么是最好的方法。