Magento2: лучший способ загрузить Customer по его идентификатору

15

Как лучше всего загрузить Customer по Id? используя интерфейс клиента или фабрику клиента или другой способ?
В большинстве решений, которые я нашел, это делается с помощью прямого использования objectManager(которое никогда не должно использоваться).

Вишвас Бхатнагар
источник

Ответы:

24

Всегда лучше использовать сервисные контракты.

В вашем случае я бы использовал \Magento\Customer\Api\CustomerRepositoryInterface:

protected $_customerRepositoryInterface;
public function __construct(
    ....
    \Magento\Customer\Api\CustomerRepositoryInterface $customerRepositoryInterface,
    ....
) {
    ....
    $this->_customerRepositoryInterface = $customerRepositoryInterface;
}

Тогда в вашем коде вы можете позвонить:

$customerId = 1;
$customer = $this->_customerRepositoryInterface->getById($customerId);
Рафаэль в цифровом пианизме
источник
не работает ... я держу его в helper / data.php и вызываю этот метод в phtml файле, но не работает.
Сарфарадж Сипай