Come fa un oggetto del modello cliente conosce il metodo loadByEmail della risorsa modello?
-
16-10-2019 - |
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
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