使用产品存储库获取产品

要从数据库中获取产品,你需要使用 Magento 2 的存储库设计模式。每个模块都可以与自己的存储库绑定在一起,而产品目录模块也没有任何不同。

你可以在类中使用依赖注入来访问存储库。一个工作示例如下所示:

class Example
{
    /**
     * @var \Magento\Catalog\Model\ProductRepository
     */
    protected $productRepository;

    /**
     * @param \Magento\Catalog\Model\ProductRepository $productRepository
     */
    public function __construct(
        \Magento\Catalog\Model\ProductRepository $productRepository
    ) {
        $this->productRepository = $productRepository;
    }

    /**
     * Get product by ID
     * @return \Magento\Catalog\Api\Data\ProductInterface
     * @throws \Magento\Framework\Exception\NoSuchEntityException
     */
    public function getProductById(int $productId)
    {
        return $this->productRepository->getById($productId);
    }
}

存储库具有更多功能,例如保存或删除产品,以及获取产品列表和使用过滤器,但这超出了此示例的范围。