답변:
Magento 2에서는이를 위해 서비스 계층을 사용하도록 제안했습니다. \Magento\Catalog\Model\ProductRepository::getById
ID로 제품을 얻는 방법을 사용하십시오
Magento 2는 Factories
모든 모델을로드 할 때 사용 하는 것이 좋습니다 . 방법은 다음과 같습니다.
수업 위에이 줄을 추가하십시오.
use Magento\Catalog\Model\ProductFactory;
이제 클래스 속성을 만듭니다.
protected $productFactory;
생성자에서 종속성을 추가하십시오.
public function __construct(
ProductFactory $productFactory
) {
$this->productFactory = $productFactory;
}
이제 아래와 같이 제품을로드하십시오 :
$_product = $this->productFactory->create()->load(<product_id>);
다른 답변 외에도 다음 서비스 계약 방법을 사용하는 것이 좋습니다 .
\Magento\Catalog\Api\ProductRepositoryInterface::getById
: ID로 제품을로드\Magento\Catalog\Api\ProductRepositoryInterface::get
: sku로 제품로드더 많은 마 젠토 방식을 달성하는 방법은 핵심 코드의 대부분에서 다르게 수행하기 때문에 제품 리포지토리를 사용하는 것이므로 구분하기가 어렵습니다.
use Magento\Catalog\Model\ProductRepository;
protected $productRepository;
public function __construct(
ProductRepository $productRepository
) {
$this->productRepository = $productRepository;
}
public function getMyProduct($productId)
{
return $this->productRepository->getById($productId);
}
아래와 같이 제품보기 페이지에서 기능을 사용하여 제품 세부 정보를 가져 왔습니다.
여기 Sm / Sawyer가 제 테마입니다.
$_config = $this->helper('Sm\Sawyer\Helper\Data');
$productId = $this->getProduct()->getId();
$name = $this->getProduct()->getName();
$stock1 = $this->getProduct()->getQty();
$price = $this->getProduct()->getPrice();