Magento2: Melhor maneira de carregar o cliente por ID do cliente

15

Qual é a melhor maneira de carregar o Cliente por ID? usando a interface do cliente ou a fábrica do cliente ou de outra maneira?
Na maioria das soluções que encontrei, isso é feito diretamente usando objectManager(que nunca deve ser usado).

Vishwas Bhatnagar
fonte

Respostas:

24

É sempre uma prática melhor usar contratos de serviço.

No seu caso, eu usaria \Magento\Customer\Api\CustomerRepositoryInterface:

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

Em seguida, no seu código, você pode chamar:

$customerId = 1;
$customer = $this->_customerRepositoryInterface->getById($customerId);
Raphael na Digital Pianism
fonte
não está funcionando ... eu o mantenho em helper / data.php e chamo esse método no arquivo phtml, mas não está funcionando.
Sarfaraj Sipai