如何在eav字段中保存数据?

时间:2011-09-22 14:05:25

标签: magento magento-1.5

我通过$installer->addAttribute('order', 'field', etc)成功安装了EAV属性。当订单保存在sales_order_save_before / sales_order_save_after事件中时,我也成功运行了一个观察者。现在我尝试将数据放入观察者的字段中

$observer->getOrder()->setMyField('someuniquestring'); 

我在保存之前和之后尝试过这样做,在这种情况下我添加

$observer->getOrder()->getResource()->save($order);

搜索完整个数据库后,任何表中都不存在唯一字符串。此外,如果我使用getMyField()并将其回显到观察者的屏幕并且die()它显示我设置的值。

有关如何将其保存到数据库的任何帮助吗?

1 个答案:

答案 0 :(得分:0)

经过一段时间的调试后,我找到了自己问题的答案。

在某个时间点,magento改变了数据字段应添加到数据库中的订单模型的方式。之前使用的是EAV字段,但现在magento只是修改了平台本身。所以在我的安装脚本中我只是做

$installer->getConnection->addColumn($installer->getTable('sales_flat_order', 'site_license_id', 'int(1) ...');

然后在保存前我的观察者添加$ observer-> getEvent() - > getOrder() - > setMyField($ myval);

这就是它的全部。