Question

Considérez le code suivant

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

Lorsque l'on regarde à travers Mage_Customer_Model_Customer je ne pouvais pas trouver une méthode de loadByEmail partout en elle de chaîne d'héritage. Puis je l'ai regardé du modèle de ressources, Mage_Customer_Model_Resource_Customer, et elle était là.

Ma question est: comment est-il possible que je charge le modèle lui-même et avoir accès à cette méthode par la $ customer_email variable

Était-ce utile?

La solution

Je pense que vous avez manqué quelque chose. La méthode loadByEmail existe dans la classe Mage_Customer_Model_Customer: Pour Magento 1.7.0.2 il commence à la ligne 180 et ressemble à ceci:

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

Il est juste une enveloppe pour Mage_Customer_Model_Resource_Customer::loadByEmail mais il existe.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top