Frage

Betrachten Sie den folgenden Code

$customer_email = "customer@example.com";
$customer = Mage::getModel("customer/customer");
$customer->setWebsiteId(Mage::app()->getWebsite()->getId());
$customer->loadByEmail($customer_email);

Beim Blick durch mage_customer_model_customer konnte ich nirgendwo in seiner Erbschaftskette eine LoadByEmail -Methode finden. Dann habe ich mir sein Ressourcenmodell angesehen, mage_customer_model_resource_customer, und da war es.

Meine Frage ist: Wie ist es möglich, dass ich das Modell selbst lade und über die Variable $ customer_email auf diese Methode zugreifen kann?

War es hilfreich?

Lösung

Ich denke du hast etwas verpasst. Die Methode loadByEmail existiert in der Mage_Customer_Model_Customer Klasse: Für Magento 1.7.0.2 beginnt es in Zeile 180 und sieht so aus:

public function loadByEmail($customerEmail)
{
    $this->_getResource()->loadByEmail($this, $customerEmail);
    return $this;
}

Es ist nur ein Wrapper für Mage_Customer_Model_Resource_Customer::loadByEmail Aber es existiert.

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