Frage

Warum kann ich nicht Folgendes tun:

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

Die Unterabfrage schlägt mit dem Fehler fehl, "kann den Feldnamen nicht bestimmen".

War es hilfreich?

Lösung

Ihre Frage hat nicht genug Kontext, um eine konkrete Antwort zu geben. Ich werde also erklären, warum Magento eine Ausnahme mit der Nachricht ausführt

Den Feldnamen kann nicht bestimmen

Hoffentlich erhalten Sie genügend Informationen, um das Problem aufzuspüren.

In einem stock magento -System die nur Platzieren Sie den Fehler "Der Feldname kann nicht bestimmen" angezeigt.

#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;
}

Also, wenn die _attributeToField Die Methode wird ein Attributwert übergeben, der ist

  1. Eine leere Zeichenfolge

  2. Ein Attributobjekt wo getAttributeCode Gibt false zurück (oder einer der vielen Werte, die PHP falsch betrachtet)

  3. Etwas, das nicht Mage_Eav_Model_Entity_Attribute oder Zeichenfolge

Dann wird die Ausnahme "den Feldnamen nicht bestimmen" geworfen.

In einem Standard -System nennt Magento diese Methode, wenn Sie ein Sammelobjekt aufrufen addAttributeToSelect, addAttributeToFilter, addAttributeToSort, oder addAttributeToSearchFilter Methoden.

Etwas an Ihrem Code führt also dazu, dass ein ungültiger Wert übergeben wird _attributeToField. Dies bedeutet, dass das Problem nicht Ihr Unterbild ist, oder das Unterbild kann etwas verändern, das einen ungültigen Wert verabschiedet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top