Najlepszą praktyką w Magento jest robienie tego przez xml.
Aby uzyskać standardowy atrybut, robisz coś takiego catalog_product_view.xml
na przykład:
<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>
Otrzyma wartość atrybutu wejściowego lub pola tekstowego. Jeśli masz listę rozwijaną, powinieneś użyć typu tekstu, więc dodaj ten wiersz na liście argumentów:
<argument name="at_type" xsi:type="string">text</argument>
Nie trzeba tworzyć plików ani pisać kodu php, aby uzyskać atrybut. W ten sposób użyjesz tego samego domyślnego kodu php dla dowolnego atrybutu i będziesz musiał go zmienić tylko raz, jeśli zajdzie taka potrzeba.
Mam rozwiązanie mojego problemu:
źródło
Mam nadzieję, że to pomoże
źródło
Inny sposób w plikach phtml:
jak w:
vendor/magento/module-catalog/view/frontend/templates/product/view/description.phtml
źródło
Tworzenie bloku w katalogu katalog_produktu_widok.xml i dodawanie dowolnego kontenera lub utworzenie wokół niego kontenera.
źródło