Question

Dans Magento2, j'ai compris que nous devons utiliser des référentiels au lieu de collections.Ce que je ne comprends pas c'est comment faire pour ajouter des attributs personnalisés dans le référentiel.

Si je fais quelque chose comme ceci:

    $searchCriteria = $this->searchCriteriaBuilder
        ->addFilter(ProductInterface::STATUS, Status::STATUS_ENABLED)
        ->addFilter(ProductInterface::VISIBILITY, array(Visibility::VISIBILITY_IN_SEARCH, Visibility::VISIBILITY_BOTH), 'in')
        ->create();

    $products = $this->productRepositoryInterface->getList($searchCriteria);

J'ai une liste de produits, mais je n'ai pas tous les attributs dont j'ai besoin.Comment peuvent-ils y parvenir?Quelque chose comme le addAttributeToSelect dans Magento 1.

Était-ce utile?

La solution

J'ai compris que nous devons utiliser des référentiels au lieu de collections

pas nécessairement;

Autant que je sache, lorsque vous utilisez les référentiels de vous conformer aux règles de Magento 2 contrats de service, ce qui signifie que les interfaces de service et interfaces de données sont définis (mais extensible par modules tiers).

Rendant possible au moment de l'exécution de changer le résultat de l'appel à la getList() la méthode de dépôt constituent une violation du présent contrat.

Pour récupérer les attributs que vous avez besoin au moment de l'exécution, vous pouvez utiliser des collections.Magento 2-cadre lui-même qui fait un usage intensif des collections.

Sinon, vous devez implémenter un module qui définit une nouvelle interface de données (qui est, le nouvel ensemble d'attributs) de cette entité.

Espérons qu'il jette un peu de lumière.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top