Comment puis-je obtenir les valeurs des options d'attribut de l'entité eav?
J'ai trouvé une solution uniquement pour magento 1.x mais M2 je ne sais pas.
M1:
$attr = Mage::getResourceModel('eav/entity_attribute_collection')->setCodeFilter('specialty')->getData()[0];
$attributeModel = Mage::getModel('eav/entity_attribute')->load($attr['attribute_id']);
$src = $attributeModel->getSource()->getAllOptions();
Quelqu'un sait, montrez-moi étape par étape, merci! Merci!
\Magento\Eav\Api\Attribute RepositoryInterface
. Tout ce qui n'est pas marqué comme @api est traité comme privé et peut être supprimé dans les versions mineures.Vous pouvez le faire en appelant simplement le code ci-dessous dans votre fichier Block.
Appelez à l'intérieur de votre fichier phtml,
Merci.
la source
swatch
entrées, commecolor
. LagetOptions()
méthode est codée en dur pour certains types d'entrée, comme les "listes déroulantes", de sorte qu'elle ignore les options d'entrée de nuance. Juste un avertissement si quelqu'un d'autre se présente à cela.Utilisez le code suivant pour obtenir toutes les options d'attribut.
Pouvez-vous cliquer ici pour des explications plus détaillées. http://www.pearlbells.co.uk/code-snippets/get-magento-attribute-options-programmatically/
la source
J'utilise la couche de service Api
Magento\Eav\Api\AttributeRepositoryInterface
suggérée par @kandy dans les commentaires sur la réponse @marius.Injectez le membre de données de service dans votre constructeur comme suit.
Et vous pouvez obtenir l'attribut en utilisant ceci.
Afin d'obtenir le tableau de valeurs d'options d'attribut, utilisez ceci.
la source
Injectez une instance de
\Magento\Catalog\Model\Product\Attribute\Repository
dans votre constructeur (dans un bloc, une classe d'assistance ou n'importe où):Créez ensuite une méthode dans votre classe pour obtenir l'attribut par code:
Vous pouvez ensuite appeler cette méthode comme ceci, par exemple à l'intérieur d'un fichier .phtml
Ensuite, vous pouvez effectuer des appels sur l'objet attribut, par exemple
$attribute->getOptions()
$attrTest->getFrontendLabels()
echo '> ' . print_r($attrTest->debug(), true);
la source
la source