Quero obter todos os nomes de categorias de uma loja específica. Estou tentando:
$categoryFactory = $objectManager->create('Magento\Catalog\Model\ResourceModel\Category\CollectionFactory');
$categories = $categoryFactory->create()
->addAttributeToSelect('*')
->setProductStoreId($store->getId());
foreach ($categories as $category){
$category->getName();
}
Mas mostra todas as categorias no mesmo idioma (exibição na mesma loja).
Então ->setProductStoreId($store->getId())
não funciona.
Eu também tentei $category->setStoreId($store->getId())->getName()
.
Como posso obter todos os nomes de categorias para a visualização específica da loja?
Usar diretamente o gerenciador de objetos não é o melhor / Maneira recomendada de fazer no magento usar o Bloco com o método consturct and fetch no seu arquivo phtml.
Para obter mais detalhes, consulte o link de blogs, coleção de categorias por loja
Usando o modo Block,
chamar dentro do arquivo phtml ,
fonte
$context
ser uma instância de\Magento\Framework\View\Element\Template\Context
? De acordo com o método construtor do\Magento\Framework\View\Element\Template
qual o bloco de respostas está sendo estendido.\Magento\Framework\View\Element\Template
já pode ser\Magento\Store\Model\StoreManagerInterface
acessada por meio da propriedade de classe protegida$_storeManager
, portanto, é desnecessário defini-la nos construtores de nossas próprias classes para outra propriedade. +1 Para obter ajuda com a pergunta do OP, isso ajudou muito, muito obrigado.Crie um bloco e adicione o código abaixo ao seu bloco.
E $ block-> getCategoryCollection () usou isso no seu arquivo de modelo. para obter coleção de categorias
fonte
Método 1 - Usando injeção de dependência (DI)
Aqui está o código de exemplo para obter a lista de todas as categorias no Magento 2 usando injeção de dependência.
Para obter as informações da categoria, talvez seja necessário injetar o objeto
\Magento\Catalog\Model\ResourceModel\Category\CollectionFactory
e\Magento\Catalog\Helper\Category
classes no construtor da classe de bloco do nosso módulo e acessá-lo no arquivo view (.phtml).Agora, podemos usar as funções em nosso arquivo view (.phtml) da seguinte maneira.
Método 2- Usando o Gerenciador de Objetos
Aqui está o código para obter a lista de todas as categorias no Magento 2 usando o gerenciador de objetos.
fonte