La meilleure pratique dans magento est de le faire via xml.
Pour obtenir un attribut standard, vous faites quelque chose comme ceci dans catalog_product_view.xml
par exemple:
<referenceContainer name="product.info.main">
<block class="Magento\Catalog\Block\Product\View\Description" name="product.info.brand" template="product/view/attribute.phtml" before="-">
<arguments>
<argument name="at_call" xsi:type="string">getBrand</argument>
<argument name="at_code" xsi:type="string">brand</argument>
<argument name="css_class" xsi:type="string">brand</argument>
<argument name="at_label" xsi:type="string">none</argument>
<argument name="add_attribute" xsi:type="string">itemprop="brand"</argument>
</arguments>
</block>
</referenceContainer>
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:
<argument name="at_type" xsi:type="string">text</argument>
Pas besoin de créer de fichiers ou d'écrire un code php pour obtenir un attribut. De cette façon, vous utiliserez le même code php par défaut pour n'importe quel attribut et vous ne devrez le modifier qu'une seule fois si nécessaire.
Claudiu Creanga
la source
J'avais une solution à mon problème:
la source
J'espère que cela aide
la source
Une autre façon dans les fichiers phtml:
un péché:
vendor/magento/module-catalog/view/frontend/templates/product/view/description.phtml
la source
Créer un bloc à l'intérieur du catalog_product_view.xml et ajouter à l'intérieur de n'importe quel conteneur que vous voulez ou créer un conteneur autour de lui.
la source