我需要在请求之间传递一组未保存的 Mage_Sales_Model_Order 对象。试图将它们保存在结帐/会话中,但它们似乎没有保存在数据库中。此外,之后添加到核心/会话的所有数据也会消失。我的代码:
在模型中:
//$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 在数据库中静默保存会话失败的任何不同原因?
谢谢。