Domanda

In Magento2, ho capito che dobbiamo usare i repository invece di collezioni.Quello che non capisco è come aggiungere attributi personalizzati al repository.

Se faccio qualcosa del genere:

    $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);
.

Ho un elenco di prodotti, ma non ho tutti gli attributi di cui ho bisogno. Come può raggiungere questo?Qualcosa come il addAttributeToSelect in magento 1.

È stato utile?

Soluzione

.

Ho capito che dobbiamo usare i repository anziché le raccolte

non necessariamente;

AFAIK, quando si utilizzano i repository si aderire ai contratti di servizio Magento 2, il che significa che le interfacce di servizi e le interfacce dati sono definite (ma estendibili da moduli di terze parti).

Rendere possibile in fase di esecuzione per modificare il risultato della chiamata al metodo getList() di un repository violare questo contratto.

Per recuperare gli attributi necessari in runtime è possibile utilizzare le raccolte. Magento 2 Framework fa un uso pesante delle collezioni.

Altrimenti è necessario implementare un modulo che definisce una nuova interfaccia dati (ovvero il nuovo set di attributi) per quell'entità.

Spero che fa una luce.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top