제품 팩토리 객체를 사용하여 제품을 만들고 제품 컬렉션을 잡고 해당 컬렉션의 첫 번째 항목을 가져올 수 있습니다.
/* var $productFactory \Magento\Catalog\Model\ProductFactory */
$product = $this->productFactory->create()->getCollection()->getFirstItem();
그러나 컬렉션의 필터에 store_id를 추가하려고하면
$product = $this->productFactory
->create()
->getCollection()
->addFieldToFilter('store_id', 1)
->getFirstItem();
다음과 같은 오류가 발생합니다
Invalid attribute name: store_id
#0 /Users/alanstorm/Sites/magento-2-dev-docs.dev/magento2/app/code/Magento/Eav/Model/Entity/Collection/AbstractCollection.php(1434): Magento\Eav\Model\Entity\Collection\AbstractCollection->_addAttributeJoin('store_id', 'inner')
#1 /Users/alanstorm/Sites/magento-2-dev-docs.dev/magento2/app/code/Magento/Eav/Model/Entity/Collection/AbstractCollection.php(359): Magento\Eav\Model\Entity\Collection\AbstractCollection->_getAttributeConditionSql('store_id', 1, 'inner')
#2 /Users/alanstorm/Sites/magento-2-dev-docs.dev/magento2/app/code/Magento/Catalog/Model/Resource/Product/Collection.php(1489): Magento\Eav\Model\Entity\Collection\AbstractCollection->addAttributeToFilter('store_id', 1, 'inner')
#3 /Users/alanstorm/Sites/magento-2-dev-docs.dev/magento2/app/code/Magento/Eav/Model/Entity/Collection/AbstractCollection.php(382): Magento\Catalog\Model\Resource\Product\Collection->addAttributeToFilter('store_id', 1)
...
#63 {main}
store_id를 기준으로 필터링하기 위해 제품 저장소를 사용하려고 할 때도 마찬가지입니다 (저장소는 후드 아래의 컬렉션을 사용합니다).
이것이 버그입니까? 또는 Magento 2에서 상점, 웹 사이트 및 제품 간의 관계가 더 이상 합법적 인 쿼리가 아니도록 변경 되었습니까? 양자 모두? 둘 다요? 다른 것?