Mage_Core_Exception с сообщением «Не удается получить конфигурацию объекта: sales / Array» - PullRequest
1 голос
/ 22 марта 2012

Следующий код отлично работает под Magento 1.6, но вызывает Mage_Core_Exception (сообщение: «Не удается получить конфигурацию объекта: sales / Array») при запуске под 1.5.0.1.Что мне нужно сделать, чтобы этот код работал под Magento 1.5.0.1?

    $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')
    );

Спасибо,
Бен

1 Ответ

3 голосов
/ 23 марта 2012

Если вы сравните методы join () между 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» в качестве первого параметра.

...