Вопрос

Почему я не могу сделать следующее:

            $this->getSelect()
        ->columns(
            array(
                'ordered_qty' => 'COUNT(DISTINCT main_table.entity_id)', 
                'invoiced_qty' => new Zend_Db_Expr('( select COUNT(OI.item_id) AS Ct from sales_flat_order_item AS OI WHERE OI.order_id=main_table.entity_id ) AS invoiced_qty')
                            )
                    );

Подпрограмма не удается с ошибкой, "не может определить имя поля"

Это было полезно?

Решение

Ваш вопрос не имеет достаточно контекста, чтобы дать конкретный ответ, поэтому я собираюсь объяснить, почему Magento бросает исключение с сообщением

Не может определить имя поля

Надеюсь, это даст вам достаточно информации, чтобы отследить проблему.

В системе Magento Stock Только Разместите ошибку «не может определить имя поля».

#File: app/code/core/Mage/Sales/Model/Resource/Collection/Abstract.php
protected function _attributeToField($attribute)
{
    $field = false;
    if (is_string($attribute)) {
        $field = $attribute;
    } elseif ($attribute instanceof Mage_Eav_Model_Entity_Attribute) {
        $field = $attribute->getAttributeCode();
    }
    if (!$field) {
        Mage::throwException(Mage::helper('sales')->__('Cannot determine the field name.'));
    }
    return $field;
}

Итак, если _attributeToField метод передается значением атрибута, которое

  1. Пустая строка

  2. Объект атрибута, где getAttributeCode Возвращает false (или одно из многих значений, которые PHP считает False-ish)

  3. То, что не Mage_Eav_Model_Entity_Attribute или строка

тогда исключение «не может определить имя поля».

В стандартной системе Magento вызывает этот метод при вызове объекта коллекции addAttributeToSelect, addAttributeToFilter, addAttributeToSort, или же addAttributeToSearchFilter методы

Итак, что -то в вашем коде приводит к передаче недействительного значения _attributeToField. Анкет Это означает, что проблема не является вашим подкором, или подрегистрат может изменить что-то, что приводит к передаче неверного значения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top