在Magento2中,我理解我们必须使用存储库而不是集合。我不明白的是如何将自定义属性添加到存储库。

如果我这样做:

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

我有一个产品列表,但我没有我需要的所有属性。 如何实现这一目标?像Magento 1的addAttributeToSelect的东西。

有帮助吗?

解决方案

我明白我们必须使用存储库而不是集合

不一定;

afaik,当您使用储存库时,您遵守Magento 2服务合同,这意味着定义服务接口和数据接口(但是由第三方模块扩展)。

在运行时使得可以将呼叫的结果更改为getList()方法的呼叫将违反此合同。

检索在运行时所需的属性您可以使用集合。 Magento 2框架本身备受繁重的收藏品。

否则,您应该实现一个模块,该模块定义该实体的新数据界面(即新的属性集)。

希望它脱掉一些光。

许可以下: CC-BY-SA归因
scroll top