Comment obtenir une valeur d'option basée sur l'ID d'option dans Magento, ou obtenir un ID d'option basé sur le code d'option?
Exemple: comment obtenir l'option d'attribut de couleur id 10 à partir de l'étiquette "Rouge", et obtenir la valeur "Rouge" si l'identifiant d'option est 10?
magento2
product-attribute
Arnaud
la source
la source
La meilleure pratique dans magento est de le faire via xml.
Pour obtenir un attribut standard comme
brand
vous faites quelque chose comme ceci danscatalog_product_view.xml
par exemple:Cela obtiendra la valeur d'un attribut d'entrée ou d'une zone de texte. Si vous avez une liste déroulante, vous devez utiliser le type de texte, alors ajoutez cette ligne dans la liste des arguments:
Pas besoin de créer de fichiers ou d'écrire un code php pour obtenir un attribut. De cette façon, vous aurez de la cohérence et utiliserez le même fichier attribute.phtml pour tous les attributs. Si quelque chose change, vous devez le changer en un seul endroit.
la source
Travaillé pour moi
la source
j'obtiens une solution simple. cela affichera uniquement la valeur d'attribut avec le code d'attribut pour un produit. j'ai vérifié dans le catalogue et la page de détails.
le code est
<?php echo $_product->getAttributeText('size'); ?>
ici, la taille est le nom de l'attribut.
référence: vendeur / magento / module-catalogue / view / frontend / templates / product / view / attribute.phtml ligne: 35
la source
Utiliser la méthode d'usine
dans le fichier phtml
la source
$product->getResource()
a une note DocBlock sur la dépréciation au moins dans la version 2.2.2 et j'ai donc hésité à coder en l'utilisant. Entré avec cette solution à la place inspiré par ceux déjà sur cette page:Pour référence, il s'agit de la méthode dans AbstractModel.php
la source
getResource()
méthode dans ce modèle: github.com/magento/magento2/blob/2.3-develop/app/code/Magento/…getResource()
était une méthode qui existait auparavant. Dans la version 2.2.2, comme je l'ai mentionné, la dépréciation était déjà prévue. Dans la branche 2.3-develop, je soupçonne qu'elle est terminée. D'où mon exemple qui ne nécessite pas cette fonction.Car tout le monde vient ici.
Si vous n'avez aucune entité produit, vous pouvez récupérer une valeur d'option avec ces étapes.
Injectez
\Magento\Eav\Api\AttributeRepositoryInterface
à votre classeUtilisez le référentiel pour obtenir l'instance d'attribut
Utilisez
$attribute
pour obtenir l'ID de l'option à partir de la valeur de l'optionla source
vous pouvez utiliser pour obtenir l'étiquette d'attribut
vous pouvez utiliser le gestionnaire d'objets:
la source
Veuillez essayer ce code
Étape 1) Vous devez d'abord charger les produits
Étape 2) Dans la page de liste des produits, il y aura une boucle foreach pour lister les produits comme celui-ci
Étape 3) Votre code sera dans cette boucle.Placez le code ci-dessous à un endroit où vous souhaitez afficher l'étiquette d'attribut.
Remplacez simplement your_attribute_code par le nom de votre attribut.
la source