我通过$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()它显示我设置的值。
有关如何将其保存到数据库的任何帮助吗?
答案 0 :(得分:0)
经过一段时间的调试后,我找到了自己问题的答案。
在某个时间点,magento改变了数据字段应添加到数据库中的订单模型的方式。之前使用的是EAV字段,但现在magento只是修改了平台本身。所以在我的安装脚本中我只是做
$installer->getConnection->addColumn($installer->getTable('sales_flat_order', 'site_license_id', 'int(1) ...');
然后在保存前我的观察者添加$ observer-> getEvent() - > getOrder() - > setMyField($ myval);
这就是它的全部。