Chcę użyć funkcji takich jak getName()
, getPrice()
itp. Produktu, aby pobrać informacje o produkcie w Magento 2.
Czy ktoś może mi pokazać, jak to osiągnąć?
product
price
magento2
magento-2.0
J. John
źródło
źródło
Odpowiedzi:
W Magento 2 zaproponowano użycie do tego warstwy usług. Spróbuj użyć
\Magento\Catalog\Model\ProductRepository::getById
metody, aby uzyskać produkt według identyfikatoraźródło
Magento 2 zaleca używanie
Factories
do ładowania wszystkich modeli. Oto jak powinieneś to zrobić:Nad klasą dodaj tę linię:
Teraz utwórz właściwość klasy:
W swoim konstruktorze dodaj zależność:
Teraz załaduj produkt jak poniżej:
źródło
Oprócz innych odpowiedzi, zdecydowanie zalecam stosowanie następujących metod umów o świadczenie usług:
\Magento\Catalog\Api\ProductRepositoryInterface::getById
: aby załadować produkt według identyfikatora\Magento\Catalog\Api\ProductRepositoryInterface::get
: aby załadować produkt przez skuźródło
Bardziej Magento sposobem na osiągnięcie tego, choć trudno powiedzieć, ponieważ większość miejsc w kodzie podstawowym robi to inaczej, jest korzystanie z repozytorium produktów.
źródło
do tego musisz użyć poniżej
posługiwać się
\Magento\Catalog\Model\Resource\Product\CollectionFactory
źródło
Mam szczegółowe informacje o produkcie za pomocą funkcji na stronie widoku produktu, jak poniżej.
Tutaj Sm / Sawyer to mój motyw.
źródło