2013-06-21 89 views
0

我需要在請求之間傳遞未保存的Mage_Sales_Model_Order對象數組。試圖將他們保存在結帳/會話中,但他們似乎並未保存在數據庫中。而且,在覈心/會話之後添加的所有數據也會消失。我的代碼:在magento會話中保存訂單

在模型:

//$orders is an array of orders 
Mage::getSingleton('checkout/session')->setOrders($orders); 
Mage::getSingleton('core/session')->setIsMultishipping(true); 

// ... 

在控制器:

$this->_redirectUrl($url); 

首先,我認爲,爲了不是一個序列化的對象,所以我想這在翻譯:

$serialized = serialize(Mage::getModel('sales/order')->load(1111)); 

,它返回字符串,因爲它應該。然後我檢查,如果序列化爲了符合最大字段大小,用於存儲會話:

> echo strlen($serialized); 
11465 

,這是一個很小的值考慮MEDIUMBLOB字段類型在數據庫中存儲會話數據。

您是否知道Magento在數據庫中保存會話時發生沉默失敗的任何不同原因?

謝謝。

+0

未保存的訂單在Magento中有引號嗎?另外你怎麼試圖檢索訂單? – input

+0

不完全。問題是我需要根據當前報價創建訂單,然後將其更改爲創建不同的訂單,因此,我準備訂單並將它們保存在會話中,以便在客戶從支付網關返回時保存在數據庫中。 –

回答

0

好吧,我已經發現這是我的錯 - 我的訂單所依賴的對象在訂單保存到數據庫之前被更改/刪除,因此序列化失敗了。