Je pense que vous l'avez fait dans votre contrôleur, vous devriez peut-être initialiser le gestionnaire d'objets en utilisant la classe de contexte dans la méthode __construct.
Salut, j'appelle déjà la méthode de construction dans mon fichier de classe de bloc, veuillez vérifier le lien ci-dessous pour plus de détails codebeautify.org/alleditor/0b796a Et merci pour l'aide.
Pratik
Cela ne devrait pas être la réponse acceptée. Vous ne devez pas utiliser Objectmanager de la manière décrite.
seanbreeden
22
Si vous avez besoin de l'ID de catégorie dans Magento2, vous pouvez obtenir les valeurs en suivant les étapes suivantes à suivre
1.Incluez l'utilisation Magento\Framework\Registrydans votre fichier de classe.
<?php
/**
* class file
*/namespaceVendor\Module\Model;useMagento\Framework\Registry;...
2.Créez un objet pour cela en utilisant le gestionnaire d'objets ou si vous l'utilisez dans le contrôleur, affectez-le dans votre __construct()fonction en tant que \Magento\Framework\Registry $registry:
Pour la référence supplémentaire dans la mise en œuvre de Magento2 de ce concept, reportez-vous au fichier de classe et à la fonction appelée fonction publique _initCategory(). Dans cette méthode, ils enregistrent la catégorie actuelle.
Bonjour, je suis l'étape et je vérifie le résultat de son affichage Une erreur s'est produite lors du traitement de votre demande. L'objet DOMDocument doit être créé.
Ce qui précède semble correct, mais je pense que sauter directement au Registre n'est pas la meilleure approche. Magento fournit un résolveur de calque qui encapsule déjà cette fonctionnalité. (Voir le bloc TopMenu dans les plugins du catalogue)
Je suggère d'injecter la classe \ Magento \ Catalog \ Model \ Layer \ Resolver et de l'utiliser pour obtenir la catégorie actuelle. Voici le code:
Réponses:
Je pense que vous l'avez fait dans votre contrôleur, vous devriez peut-être initialiser le gestionnaire d'objets en utilisant la classe de contexte dans la méthode __construct.
la source
Si vous avez besoin de l'ID de catégorie dans Magento2, vous pouvez obtenir les valeurs en suivant les étapes suivantes à suivre
1.Incluez l'utilisation
Magento\Framework\Registry
dans votre fichier de classe.2.Créez un objet pour cela en utilisant le gestionnaire d'objets ou si vous l'utilisez dans le contrôleur, affectez-le dans votre
__construct()
fonction en tant que\Magento\Framework\Registry $registry
:3. Ensuite, vous pouvez simplement l'utiliser avec la classe comme:
Pour la référence supplémentaire dans la mise en œuvre de Magento2 de ce concept, reportez-vous au fichier de classe et à la fonction appelée fonction publique
_initCategory()
. Dans cette méthode, ils enregistrent la catégorie actuelle.la source
Essayez ce code. cela vous aidera certainement.
la source
Ce qui précède semble correct, mais je pense que sauter directement au Registre n'est pas la meilleure approche. Magento fournit un résolveur de calque qui encapsule déjà cette fonctionnalité. (Voir le bloc TopMenu dans les plugins du catalogue)
Je suggère d'injecter la classe \ Magento \ Catalog \ Model \ Layer \ Resolver et de l'utiliser pour obtenir la catégorie actuelle. Voici le code:
Voici ce que fait la méthode getCurrentCategory () dans la classe Resolver.
Comme vous pouvez le voir, il utilise toujours le registre mais il fournit une solution de secours en cas d'échec.
la source