Database 在会话magento中保存订单
我需要在请求之间传递一个未保存的Mage\u Sales\u Model\u Order对象数组。试图将它们保存在签出/会话中,但它们似乎没有保存在DB中。此外,之后添加到核心/会话的所有数据也会消失。我的代码: 在模型中:Database 在会话magento中保存订单,database,magento,session,Database,Magento,Session,我需要在请求之间传递一个未保存的Mage\u Sales\u Model\u Order对象数组。试图将它们保存在签出/会话中,但它们似乎没有保存在DB中。此外,之后添加到核心/会话的所有数据也会消失。我的代码: 在模型中: //$orders is an array of orders Mage::getSingleton('checkout/session')->setOrders($orders); Mage::getSingleton('core/session')->set
//$orders is an array of orders
Mage::getSingleton('checkout/session')->setOrders($orders);
Mage::getSingleton('core/session')->setIsMultishipping(true);
// ...
在控制器中:
$this->_redirectUrl($url);
首先,我认为order不是一个可序列化的对象,所以我在解释器中尝试了以下方法:
$serialized = serialize(Mage::getModel('sales/order')->load(1111));
它返回了它应该返回的字符串。然后我检查序列化顺序是否符合存储会话的最大字段大小:
> echo strlen($serialized);
11465
考虑到在数据库中存储会话数据的mediumblob字段类型,这个值很小
您知道Magento在数据库中以静默方式保存会话失败的原因吗
谢谢。好的,我发现这是我的错-我的订单所依赖的对象在订单保存到数据库之前被更改/删除,所以序列化失败 未保存的订单在Magento中是引号,不是吗?还有,你是如何检索订单的?不完全是。问题是,我需要基于当前报价创建订单,然后将其更改为创建不同的订单,因此我准备订单并将其保存在会话中,以便在客户从支付网关返回时保存在数据库中。