Domanda

Si consideri il seguente codice

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

Quando si guarda attraverso Mage_Customer_Model_Customer non sono riuscito a trovare un metodo loadByEmail in qualsiasi parte di essa la catena di ereditarietà. Poi ho guardato di modello di risorse, Mage_Customer_Model_Resource_Customer, ed era lì.

La mia domanda è: come è possibile, che si carica il modello stesso e ottenere l'accesso a questo metodo attraverso il $ customer_email variabile

È stato utile?

Soluzione

Penso che vi siete persi qualcosa. Il metodo loadByEmail esiste nella classe Mage_Customer_Model_Customer: Per Magento 1.7.0.2 inizia alla riga 180 e si presenta così:

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

E 'solo un wrapper per Mage_Customer_Model_Resource_Customer::loadByEmail ma esiste.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top