Как объект модели клиента узнает о методе LoadByemail ресурса модели?

magento.stackexchange https://magento.stackexchange.com/questions/11326

  •  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 Но это существует.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top