如何在ordercontroller Magento后端获得sales_quote模型?我需要在ordercontroller中获取引用详细信息,因此我使用以下代码。
$quote= Mage::getModel('sales/quote')->load($quoteid);
以上查询返回空数据。在下面
Mage_Sales_Model_Quote Object
(
[_eventPrefix:protected] => sales_quote
[_eventObject:protected] => quote
[_customer:protected] =>
[_addresses:protected] =>
[_items:protected] =>
[_payments:protected] =>
[_errorInfoGroups:protected] => Array
(
)
[_preventSaving:protected] =>
[_resourceName:protected] => sales/quote
[_resource:protected] =>
[_resourceCollectionName:protected] => sales/quote_collection
[_cacheTag:protected] =>
[_dataSaveAllowed:protected] => 1
[_isObjectNew:protected] =>
[_data:protected] => Array
(
)
[_hasDataChanges:protected] =>
[_origData:protected] =>
[_idFieldName:protected] =>
[_isDeleted:protected] =>
[_oldFieldsMap:protected] => Array
(
)
[_syncFieldsMap:protected] => Array
(
)
)
有什么方法可以获得报价吗?
答案 0 :(得分:4)
我遇到了同样的问题。在查看代码一段时间后,我遇到了这个函数:
Mage_Sales_Model_Quote::loadByIdWithoutStore()
我想常规的Mage_Sales_Model_Quote::load()
函数会自动附加当前的storeview来加载引用对象。在这种情况下,storeview是admin,这意味着不会找到引号id的结果,并且返回的对象为空。
在您的情况下,这应该按预期工作:
$quote= Mage::getModel('sales/quote')->loadByIdWithoutStore($quoteid);
答案 1 :(得分:0)
我想,你的报价ID丢失,在加载模型前检查, 试试这段代码
if($quoteID)
{
try {
$quote = Mage::getModel("sales/quote")->load($quoteID);
} catch(Exception $e) {
return $e->getMessage();
}
}else{
return "no quote found";
}