Chcę pobrać wszystkie atrybuty produktu, które są dostępne, a następnie przekonwertować je na nazwę i wartość dla mojego pola wyboru opcji. W Magento 1 mogę to osiągnąć w następujący sposób:
public function getMagentoAttributes()
{
$values[] = array(
'value' => '',
'label' => 'Pick Product Attribute'
);
$categories = Mage::getResourceModel('catalog/product_attribute_collection')->getItems();
foreach ($categories as $category) {
if ($category->getFrontendLabel() != '') {
$label = $category->getFrontendLabel();
} else {
$label = $category->getAttributecode();
}
$values[] = array(
'value' => $category->getAttributecode(),
'label' => $label
);
}
return $values;
}
Czy w Magento 2 można zrobić to samo?
magento-2.1
product-attribute
prosty chłopak
źródło
źródło
Odpowiedzi:
Tutaj możesz mieć całą kolekcję atrybutów, możesz je filtrować według własnych potrzeb.
źródło
foreach
można uzyskaćgetAttributeId()
tak dobrze, jakgetAttributeName()
echo "<pre>"; print_r($attributes);exit;
użyj tego w foreach i sprawdźInnym pomysłem jest to, że powinniśmy wypróbować warstwę kontraktów serwisowych .
Użyj,
Magento\Eav\Api\AttributeRepositoryInterface
aby uzyskać atrybut eav.Mam już odpowiedź tutaj: /magento//a/161426/33057
Na przykład:
UWAGA: W przypadku kodu typu jednostki w
getList
metodzie możemy znaleźć weav_entity_type
tabeli.źródło