我正在尝试为Magento 1.8.x运行安装程序脚本,但我不确定如何执行它。任何人都可以确认下面的文件是否有任何问题,以及如何让Magento实际执行此脚本并添加此自定义客户属性?
这是我的文件夹结构(只包括我觉得对此有效的那些):
\app\code\local\SS\Rapt\
\app\code\local\SS\Rapt\etc\config.xml
\app\code\local\SS\Rapt\sql\mysql4-install-0.0.1.php
我的安装程序文件如下:
$installer = $this;
$installer->startSetup();
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
$entityTypeId = $setup->getEntityTypeId('customer');
$attributeSetId = $setup->getDefaultAttributeSetId($entityTypeId);
$attributeGroupId = $setup->getDefaultAttributeGroupId($entityTypeId, $attributeSetId);
$setup->addAttribute('customer', 'organisation_id', array(
'input' => 'select', //or select or whatever you like
'type' => 'int', //or varchar or anything you want it
'label' => 'Organisation ID',
'visible' => 1,
'required' => 0, //mandatory? then 1
'user_defined' => 1,
));
$setup->addAttributeToGroup(
$entityTypeId,
$attributeSetId,
$attributeGroupId,
'organisation_id',
'100'
);
$oAttribute = Mage::getSingleton('eav/config')->getAttribute('customer', 'organisation_id');
$oAttribute->setData('used_in_forms', array('adminhtml_customer'));
$oAttribute->save();
$setup->endSetup();
我的config.xml如下:
<config>
<modules>
<SS_Rapt>
<version>0.0.1</version>
</SS_Rapt>
</modules>
/** more here but left out as not applicable to this installer feature **/
答案 0 :(得分:2)
MySQL4不再使用了。您应该使用资源设置模型。首先,您应该在config.xml中定义资源
<config>
<modules>
<SS_Rapt>
<version>0.0.1</version>
</SS_Rapt>
</modules>
<global>
<resources>
<rapt_setup>
<setup>
<module>SS_Rapt</module>
<class>SS_Rapt_Model_Resource_Setup</class>
</setup>
<connection>
<use>core_setup</use>
</connection>
</rapt_setup>
</resources>
</global>
</config>
然后你需要在以下位置创建SS_Rapt_Model_Resource_Setup文件:
SS/Rapt/Model/Resource/Setup.php
这个类应该包含这个:
<?php
class SS_Rapt_Model_Resource_Setup extends Mage_Eav_Model_Entity_Setup{
}
最后,您需要在此位置创建安装脚本:SS/Rapt/sql/rapt_setup/install-0.0.1.php
您不需要将mysql4放在安装脚本名称的开头。那就是它:))
答案 1 :(得分:0)
我终于解决了 - sql目录需要有一个名为&#39; rapt_setup&#39;的文件夹。用sql里面的那个!?卫生署!
但是,由于J.S提供了很多帮助,我仍然希望他能得到答案:)