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 файле, но не работает.
Сарфарадж Сипай
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.