Как объект модели клиента узнает о методе LoadByemail ресурса модели?
-
16-10-2019 - |
Вопрос
Рассмотрим следующий код
$customer_email = "customer@example.com";
$customer = Mage::getModel("customer/customer");
$customer->setWebsiteId(Mage::app()->getWebsite()->getId());
$customer->loadByEmail($customer_email);
Просматривая mage_customer_model_customer, я не мог найти метод Loadbyemail в любом месте его цепочки наследования. Затем я посмотрел на свою модель ресурса, Mage_Customer_Model_Resource_Customer, и вот это было.
Мой вопрос: как это возможно, чтобы я загружаю саму модель и получаю доступ к этому методу через переменную $ customer_email?
Решение
Я думаю, ты что -то пропустил. Метод loadByEmail
существует в Mage_Customer_Model_Customer
Класс: для Magento 1.7.0.2 он начинается в строке 180 и выглядит так:
public function loadByEmail($customerEmail)
{
$this->_getResource()->loadByEmail($this, $customerEmail);
return $this;
}
Это просто обертка для Mage_Customer_Model_Resource_Customer::loadByEmail
Но это существует.
Не связан с magento.stackexchange