Frage

Ich arbeite mit Magento, ich habe Bestellungen und drucke sie so aus:

echo $order->getId();
echo $order->getCustomerEmail();

Mein Problem ist, dass ich nicht alle Namen der get-Methoden kenne, also wie oder wo finde ich die gesamte Liste der verfügbaren get?

Mein Ziel ist es, alle Bestellungen in eine externe Datenbank zu exportieren. Gibt es eine schnellere Möglichkeit, dies ohne Pass für jedes Feld zu tun?

War es hilfreich?

Lösung

Die Daten der Bestellung (oder eines beliebigen Objekts) werden in einer geschützten Mitgliedsvariablen gespeichert _data welches ist ein Array.Diese Daten stammen aus den Datenbanktabellen (sie werden vom Ressourcenmodell gefüllt).

Datenarray

Sie können dieses Array abrufen und über sichern:

print_r($order->getData());
// or
var_dump($order->getData());

Sie erhalten eine Ausgabe wie diese mit print_r():

Array
(
    [entity_id] => 2
    [state] => new
    [status] => pending
// ...

Getter

Jetzt können Sie all diese Daten mit den magischen Gettern von Magento Object abrufen.Jeder Wert ist abrufbar in Form von $object->getValue() wo Value ist die Camel-Version des Schlüssels aus dem Array.

Für die obigen Werte verwenden Sie:

$order->getEntityId();
$order->getState();
$order->getStatus();

Und für customer_id zum Beispiel können Sie anrufen $order->getCustomerId()

Overrides

Die Getter können überschrieben werden.Die Getter-Konstruktion ist in der definiert Varien_Object klasse und jedes Magento-Modell könnten eine magische Getter-Methode überschreiben, indem sie explizit eine Methode definieren.Sie sollten also auch die Methoden des Modells überprüfen, indem Sie sich den Code ansehen oder Hinweise in Ihrer IDE verwenden.

Andere Tipps

Sie können einfach das gesamte verfügbare Feld in Ihrem Objekt drucken mit:

generasacodicetagpre.

Bestellungen werden nicht in einem EAV-Format gespeichert, sodass sich alle Daten in einer flachen Tabelle befinden.Durch Laden eines sales/order modellinstanz Laden Sie eine Zeile aus dem sales_flat_order tabelle also jede Spalte, die Sie hier sehen, können Sie aus dem Bestellobjekt ziehen, dh um die zu ziehen increment_id spalte können Sie anrufen $order->getIncrementId().Beachten Sie auch, dass es einige Methoden in der gibt Mage_Sales_Model_Order klassenobjekt, um eine bestimmte Datenmenge für Sie zu erstellen, zum Beispiel getCustomerName() die den Kundennamen zurückgibt, sich aber nicht auf a bezieht customer_name spalte in der sales_flat_order Tabelle .

versuchen Sie

generasacodicetagpre.

Eine Leitungslösung:

generasacodicetagpre.

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