Magento2: la mejor forma de cargar ID de cliente por cliente

15

¿Cuál es la mejor manera de cargar Cliente por Id? utilizando la interfaz del cliente o la fábrica del cliente u otra forma?
En la mayoría de las soluciones que encontré, se hace directamente usando objectManager(que nunca se debe usar).

Vishwas Bhatnagar
fuente

Respuestas:

24

Siempre es una mejor práctica usar contratos de servicio.

En su caso, usaría \Magento\Customer\Api\CustomerRepositoryInterface:

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

Luego, en su código puede llamar:

$customerId = 1;
$customer = $this->_customerRepositoryInterface->getById($customerId);
Raphael en Digital Pianism
fuente
no funciona ... lo tengo en helper / data.php y llamo a este método en el archivo phtml pero no funciona.
Sarfaraj Sipai