Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 在会话magento中保存订单_Database_Magento_Session - Fatal编程技术网

Database 在会话magento中保存订单

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

我需要在请求之间传递一个未保存的Mage\u Sales\u Model\u Order对象数组。试图将它们保存在签出/会话中,但它们似乎没有保存在DB中。此外,之后添加到核心/会话的所有数据也会消失。我的代码:

在模型中:

//$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中是引号,不是吗?还有,你是如何检索订单的?不完全是。问题是,我需要基于当前报价创建订单,然后将其更改为创建不同的订单,因此我准备订单并将其保存在会话中,以便在客户从支付网关返回时保存在数据库中。