Magento Produit D'Obtenir La Valeur De L'Attribut
Comment obtenir produit spécifique de la valeur de l'attribut si je connais l'ID de produit sans chargement du produit dans son ensemble?
- Pas une grande réponse, mais vous pouvez créer un modèle qui interroge les tables appropriées directement 🙂
Vous devez vous connecter pour publier un commentaire.
Un chemin que je connais:
$product
deux fois?vous pouvez utiliser
$product->getData('my_name')
Il semble impossible d'obtenir la valeur sans chargement de modèle du produit. Si vous prenez un coup d'oeil au fichier app/code/core/Mage/Eav/Model/Entity/Attribute/Frontend/Abstract.php vous verrez la méthode
Comme vous pouvez le voir, cette méthode nécessite l'objet chargé d'obtenir des données à partir d'elle (3ème ligne).
Veuillez voir Daniel Kocherga de réponse, comme il va travailler pour vous dans la plupart des cas.
En plus de la méthode pour obtenir la valeur de l'attribut, vous pouvez parfois obtenir le label d'un
select
oumultiselect
. Dans ce cas, j'ai créé cette méthode que je stocke dans une classe helper:Nous devons d'abord nous assurer que l'attribut souhaité est chargé, et ensuite de sortie. Utilisez ceci:
Essayer cette
Vous n'avez pas à charger le produit dans son ensemble.
Magentos collections sont très puissants et intelligents.
Au moment de l'appel getFirstItem (), la requête sera exécutée et le résultat produit est très minime:
Celle-
Vous pouvez obtenir la valeur de l'attribut par manière suivante
HTML:
toutes les choses que vous allez utiliser pour récupérer de la valeur des produits personnalisés option de panier dans Magento 2: https://www.mageplaza.com/how-get-value-product-custom-option-cart-order-magento-2.html
Vous pouvez écrire une méthode qui permettrait de le faire directement via sql, je suppose.
Ressemblerait à quelque chose comme ceci:
Variables:
Requête:
Que vous auriez à obtenir la valeur de la bonne table basée sur l'attribut du backend_type (champ eav_attribute) mais il faut au moins 1 requête supplémentaire.
Si vous avez un texte/textarea attribut nommé my_attr vous pouvez l'obtenir par:
product->getMyAttr();