Magento:can';t使用安装脚本设置自定义订单属性的默认值

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'

我在模块中使用mysql4-install-1.0.0.php为订单添加了自定义属性:

$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文件夹中的文件夹被称为完全相同的文件夹。谢谢你的解释!似乎我是从与产品相关的东西而不是订单中得到这段代码的。谢谢你的解释!似乎我从与产品相关的东西中得到了这段代码,而不是订单。