¿Cómo puedo obtener los valores de opciones de atributo de cada entidad?
Encontré una solución solo para magento 1.x pero M2 no lo sé.
M1:
$attr = Mage::getResourceModel('eav/entity_attribute_collection')->setCodeFilter('specialty')->getData()[0];
$attributeModel = Mage::getModel('eav/entity_attribute')->load($attr['attribute_id']);
$src = $attributeModel->getSource()->getAllOptions();
Alguien sabe, muéstrame paso a paso, por favor! Gracias!
\Magento\Eav\Api\Attribute RepositoryInterface
. Todo lo que no esté marcado como @api se trata como privado y se puede eliminar en versiones menores.Puede hacerlo simplemente llamando el siguiente código dentro de su archivo Block.
Llame dentro de su archivo phtml,
Gracias.
fuente
swatch
entradas, comocolor
. ElgetOptions()
método está codificado para ciertos tipos de entrada, como "menús desplegables", por lo que omite las opciones de entrada de muestra. Solo un aviso si alguien más se topa con eso.Use el siguiente código para obtener todas las opciones de atributos.
¿Puede hacer clic aquí para obtener una explicación más detallada? http://www.pearlbells.co.uk/code-snippets/get-magento-attribute-options-programmatic/
fuente
Utilizo la capa de servicio Api
Magento\Eav\Api\AttributeRepositoryInterface
sugerida por @kandy en los comentarios sobre la respuesta de @marius.Inyecte el miembro de datos de servicio en su constructor de la siguiente manera.
Y puedes obtener el atributo usando esto.
Para obtener la matriz de valores de opciones de atributo, use esto.
fuente
Inyecte una instancia de
\Magento\Catalog\Model\Product\Attribute\Repository
en su constructor (en un bloque, clase auxiliar o donde sea):Luego cree un método en su clase para obtener el atributo por código:
Luego puede llamar a este método así, por ejemplo, dentro de un archivo .phtml
Luego puede realizar llamadas en el objeto de atributo, por ejemplo
$attribute->getOptions()
$attrTest->getFrontendLabels()
echo '> ' . print_r($attrTest->debug(), true);
fuente
fuente