2012-03-22 57 views
1

以下代碼在Magento 1.6下運行良好,但在1.5.0.1下運行時引發了Mage_Core_Exception(消息:'無法檢索實體config:sales/Array')。我需要做什麼才能讓這段代碼在Magento 1.5.0.1下運行?Mage_Core_Exception消息'無法檢索實體配置:銷售/數組'

$results = Mage::getResourceModel('sales/order_collection'); 
    $results->join(
     array('status_key_table' => 'order_status'), 
     'main_table.status = status_key_table.status', 
     array('status_key_table.label') 
    ); 

謝謝

+0

var/report'目錄中的錯誤報告文件怎麼樣,你檢查了哪些文件與這個錯誤有關嗎? – 2012-03-22 22:26:52

回答

3

如果你比較1.5.0.1 1.6.2.0和之間的連接()方法:

1.5.0.1: Mage_Core_Model_Mysql4_Collection_Abstract::join() 
public function join($table, $cond, $cols='*') 
{ 
    if (!isset($this->_joinedTables[$table])) { 
     $this->getSelect()->join(array($table=>$this->getTable($table)), $cond, $cols); 
     $this->_joinedTables[$table] = true; 
    } 
    return $this; 
} 

1.6.2.0: Mage_Core_Model_Resource_Db_Collection_Abstract::join() 
public function join($table, $cond, $cols = '*') 
{ 
    if (is_array($table)) { 
     foreach ($table as $k => $v) { 
      $alias = $k; 
      $table = $v; 
      break; 
    ... 

你可以看到,沒有按1.5.0.1」不支持別名。相反,它會在你傳遞的第一個參數中調用$ this-> getTable() - 這應該是一個字符串。所以,就你而言,你需要傳入'sales/order_status'作爲第一個參數。