好的,所以我试图在我的模块注册中添加一个字段。显然我必须添加一个属性。所以我的“安装脚本”实际上只是对客户实体的升级。但是,该模块已启用,但当我刷新前端时,它将不会运行我的安装脚本。我已经在前面放了一个模具,看看它是否能够击中它而不是它。
我已经检查了大约7个其他堆栈溢出问题,每个错误都非常明显。配置不匹配它所在的文件夹。使用customer_setup作为名称。安装文件中的错误。我一遍又一遍地看着我的代码,我知道我错过了一些小事。在某个地方有些错字.....但是我现在浪费了太多时间,所以我把它交给你了不起的人。
的Config.xml
<config>
<modules>
<BlizzardLabs_Customer>
<version>0.1.0</version>
</BlizzardLabs_Customer>
</modules>
<global>
<fieldsets>
<customer_account>
<flavour>
<create>1</create>
<update>1</update>
</flavour>
</customer_account>
</fieldsets>
<resources>
<blizzardlabs_customer_setup>
<setup>
<module>BlizzardLabs_Customer</module>
<class>BlizzardLabs_Customer_Model_Entity_Setup</class>
</setup>
</blizzardlabs_customer_setup>
</resources>
</global>
</config>
BlizzardLabs /客户/型号/实体/ Setup.php
class BlizzardLabs_Customer_Model_Entity_Setup extends Mage_Customer_Model_Entity_Setup {
public function getDefaultEntities() {
$entities = parent::getDefaultEntities();
// Add flavour to customer attributes
$entities['customer']['attributes']['flavour'] = array(
'label' => 'Ice Cream Flavour',
'visible' => true,
'required' => true,
);
return $entities;
}
}
BlizzardLabs /客户/ SQL / blizzardlabs_customer_setup / mysql4安装-0.1.0.php
Mage::log('Installing BlizzardLabs_Customer');
$installer = $this;
$installer->startSetup();
$installer->addAttribute('customer', 'flavour', array(
'label' => 'Ice Cream Flavour',
'type' => 'varchar',
'input' => 'text',
'visible' => true,
'required' => true,
'position' => 1,
));
$attrs = array('flavour');
foreach ($attrs as $item) {
$attr = Mage::getSingleton('eav/config')->getAttribute('customer', $item);
$attr->setData('used_in_forms', array('adminhtml_customer','customer_account_edit','customer_account_create'))->save();
}
$installer->endSetup();
echo "information added to database";
答案 0 :(得分:1)
所以我明白了。我不确定这是否是版本的东西,但为了彻底我使用的是magento 1.13。
这是我的问题:
<blizzardlabs_customer_setup>
</blizzardlabs_customer_setup>
需要:
<blizzardlabscustomer_setup>
</blizzardlabscustomer_setup>
我当然必须编辑我的文件夹才能与之匹配。所以新路径是/BlizzardLabs/Customer/sql/blizzardlabscustomer_setup/<file_name>
。
此外,为了后人,使用“customer_setup”将无法正常工作,因为这会与Magento基类发生冲突而不会运行安装脚本。
我不确定这是一个magento版本问题还是旧版本,但在_setup之前你不能有任何下划线。谢谢!
答案 1 :(得分:0)
BlizzardLabs/Customer/sql/mysql4-install-0.1.0.php
不应该这样(在我至少写过的每个模块中)
BlizzardLabs/Customer/sql/customer_setup/mysql4-install-0.1.0.php
或者可能(以上可能与mage_customer冲突)
BlizzardLabs/Customer/sql/blizzardlabs_customer_setup/mysql4-install-0.1.0.php