Как я могу получить модель sales_quote в buckcontroller Magento? Мне нужно получить детали цитаты в 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 ( ) )
Есть ли способ получить цитату?
У меня была такая же проблема. Просмотрев код некоторое время, я наткнулся на эту функцию:
Mage_Sales_Model_Quote::loadByIdWithoutStore()
Я предполагаю, что регулярная Mage_Sales_Model_Quote::load()
автоматически присоединяет текущее хранилище для загрузки объекта кавычки. В этом случае storeview является администратором, что означает, что для идентификатора котировки не будет найдено никаких результатов, а возвращаемый объект пуст.
В вашем случае это должно работать как ожидалось:
$quote= Mage::getModel('sales/quote')->loadByIdWithoutStore($quoteid);
я думаю, ваш кодовый идентификатор отсутствует, проверьте перед загрузкой модели, попробуйте этот код
if($quoteID) { try { $quote = Mage::getModel("sales/quote")->load($quoteID); } catch(Exception $e) { return $e->getMessage(); } }else{ return "no quote found"; }