문제

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 ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top