您的代码setId($orderId)
看起来像是要明确设置订单entity_id
(即创建订单),或者您只是不知道加载后不需要的事实,setId($orderId)
如果您只想更新给定的订单.
如果您尝试创建订单:该sales/order
模型通常不允许显式设置订单entity_id
,因为它使用默认情况下自动递增的主键。
如果您尝试更新现有订单:setId($orderId)
从save()
链中删除。
其次,如果您希望能够将其值保存到数据库中,则需要先使用属性扩展sales/order
模型。xxx
有几种方法可以扩展sales/order
模型以具有自定义属性。例如,您可以在文件夹中拥有自己的安装脚本app/code/local/Mycompany/Mymodule/sql/myresource/
:
// Mage_Eav_Model_Entity_Setup
$oInstaller = $this;
// Add EAV attribute
$oInstaller->startSetup();
$oInstaller->addAttribute(
'order',
'my_attribute',
array(
'type' => 'int'
)
);
$oInstaller->endSetup();
// Add flat attribute
if (Mage::getVersion() >= 1.1) {
$oInstaller->startSetup();
$oConnection = $oInstaller->getConnection();
$oConnection->addColumn(
$oInstaller->getTable('sales_flat_order'),
'my_attribute',
'TINYINT(1) NOT NULL'
);
$oInstaller->endSetup();
}