Magento2: Meilleur moyen de charger le client par identifiant client

15

Quelle est la meilleure façon de charger le client par ID? en utilisant l'interface client ou l'usine client ou d'une autre manière?
Dans la plupart des solutions que j'ai trouvées, cela se fait en utilisant directement objectManager(qui ne devrait jamais être utilisé).

Vishwas Bhatnagar
la source

Réponses:

24

Il est toujours préférable d'utiliser des contrats de service.

Dans votre cas, j'utiliserais \Magento\Customer\Api\CustomerRepositoryInterface:

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

Ensuite, dans votre code, vous pouvez appeler:

$customerId = 1;
$customer = $this->_customerRepositoryInterface->getById($customerId);
Raphael chez Digital Pianism
la source
ne fonctionne pas ... je dois le garder dans helper / data.php et appeler cette méthode dans le fichier phtml mais ne fonctionne pas.
Sarfaraj Sipai