Magento:can';t使用安装脚本设置自定义订单属性的默认值
我在模块中使用mysql4-install-1.0.0.php为订单添加了自定义属性:Magento:can';t使用安装脚本设置自定义订单属性的默认值,magento,attributes,installation,default-value,Magento,Attributes,Installation,Default Value,我在模块中使用mysql4-install-1.0.0.php为订单添加了自定义属性: $installer = $this; $installer->startSetup(); $installer->addAttribute('order', 'custom_status', array( 'type' => 'varchar', 'label' => 'My Status', 'note'
$installer = $this;
$installer->startSetup();
$installer->addAttribute('order', 'custom_status', array(
'type' => 'varchar',
'label' => 'My Status',
'note' => '',
'default' => "my_default_value",
'visible' => false,
'required' => false,
'user_defined' => false,
'searchable' => false,
'filterable' => false,
'comparable' => false,
'unique' => false
));
它可以工作-当我查看销售\u平面\u订单表时,我会在表中看到新的varchar字段*自定义\u状态*。但是默认值为NULL,而不是像这里所预期的那样“我的默认值”。有什么想法吗,为什么
安装脚本真的被执行了,我每次都会将所有脚本重置为初始状态
UPD。config.xml
公司模块
Mage_销售_型号_Mysql4_设置
核心单元设置
***
确保在config.xml中有如下内容:
<resources>
<customattr_setup>
<setup>
<module>Yourcompany_ModuleName</module>
<class>Mage_Sales_Model_Mysql4_Setup</class>
</setup>
<connection>
<use>core_setup</use>
</connection>
</customattr_setup>
</resources>
你的公司
Mage_销售_型号_Mysql4_设置
核心单元设置
Mage\u Sales\u Model\u Mysql4\u设置非常重要
然后在安装脚本mysql4-install-0.1.0.php中:
<?php
$installer = $this;
$installer->startSetup();
$installer->addAttribute(
'order',
'customattr',
array(
'type' => 'float', // or whatever you want here...
'grid' => false
)
);
$installer->endSetup();
?>
确保在config.xml中有如下内容:
<resources>
<customattr_setup>
<setup>
<module>Yourcompany_ModuleName</module>
<class>Mage_Sales_Model_Mysql4_Setup</class>
</setup>
<connection>
<use>core_setup</use>
</connection>
</customattr_setup>
</resources>
你的公司
Mage_销售_型号_Mysql4_设置
核心单元设置
Mage\u Sales\u Model\u Mysql4\u设置非常重要
然后在安装脚本mysql4-install-0.1.0.php中:
<?php
$installer = $this;
$installer->startSetup();
$installer->addAttribute(
'order',
'customattr',
array(
'type' => 'float', // or whatever you want here...
'grid' => false
)
);
$installer->endSetup();
?>
Magento销售模块具有旧EAV功能的伪仿真。在数据库中创建列只需要数组中的type属性。它还使用“网格”属性来确定是否需要在网格表示表中创建相同的列
顺便说一句,以前的销售模块基于EAV,没有使用默认、标签、必需和其他属性。如果要为此属性设置默认值,则需要在保存事件之前为订单创建一个观察者,并在字段为空时在其中设置此数据。Magento销售模块具有旧EAV功能的伪模拟。在数据库中创建列只需要数组中的type属性。它还使用“网格”属性来确定是否需要在网格表示表中创建相同的列
顺便说一句,以前的销售模块基于EAV,没有使用默认、标签、必需和其他属性。如果要设置此属性的默认值,则需要在保存事件之前为order创建一个观察者,并在字段为空时在其中设置此数据。是的,我有这样的结构-如果我有问题,请查看更新的文本。我唯一不确定的是:是否真的\u setup
,而不是\u setup
。好吧,你甚至可以称之为奇怪的CatlolWut_设置,只要你模块的sql文件夹中的文件夹被称为完全相同的。是的,我有这样的结构-如果我有问题,请查看更新的文本。我唯一不确定的是:是否真的\u setup
,而不是\u setup
。好吧,你甚至可以称之为奇怪的CATLOLWUT_设置,只要你模块的sql文件夹中的文件夹被称为完全相同的文件夹。谢谢你的解释!似乎我是从与产品相关的东西而不是订单中得到这段代码的。谢谢你的解释!似乎我从与产品相关的东西中得到了这段代码,而不是订单。