Saltar al contenido

Magento 2 – ¿Cómo obtener el valor de las opciones de atributo de la entidad eav?

Solución:

puede agregar al constructor de su clase una instancia de MagentoEavModelConfig como esto:

protected $eavConfig;
public function __construct(
    ...
    MagentoEavModelConfig $eavConfig,
    ...
){
    ...
    $this->eavConfig = $eavConfig;
    ...
}

entonces puedes usar eso en tu clase

$attribute = $this->eavConfig->getAttribute('catalog_product', 'attribute_code_here');
$options = $attribute->getSource()->getAllOptions();

Utilice el siguiente código para obtener todas las opciones de atributos.

function getExistingOptions( $object_Manager ) {

$eavConfig = $object_Manager->get('MagentoEavModelConfig');
$attribute = $eavConfig->getAttribute('catalog_product', 'color');
$options = $attribute->getSource()->getAllOptions();

$optionsExists = array();

foreach($options as $option) {
    $optionsExists[] = $option['label'];
}

return $optionsExists;

 }

¿Puede hacer clic aquí para obtener una explicación más detallada? http://www.pearlbells.co.uk/code-snippets/get-magento-attribute-options-programmatic/

Puede hacerlo simplemente llame al código a continuación dentro de su archivo de bloque.

<?php
namespace VendorPackageBlock;

class Blockname extends MagentoFrameworkViewElementTemplate
{
    protected $_productAttributeRepository;

    public function __construct(        
        MagentoFrameworkViewElementTemplateContext $context,   
        MagentoCatalogModelProductAttributeRepository $productAttributeRepository,
        array $data = [] 
    ){        
        parent::__construct($context,$data);
        $this->_productAttributeRepository = $productAttributeRepository;
    } 

    public function getAllBrand(){
        $manufacturerOptions = $this->_productAttributeRepository->get('manufacturer')->getOptions();       
        $values = array();
        foreach ($manufacturerOptions as $manufacturerOption) { 
           //$manufacturerOption->getValue();  // Value
            $values[] = $manufacturerOption->getLabel();  // Label
        }
        return $values;
    }  
}

Llame dentro de su archivo phtml,

<div class="manufacturer-name">
      <?php $getOptionValue = $this->getAllBrand();?>
      <?php foreach($getOptionValue as $value){ ?>
           <span><?php echo $value;?></span>
      <?php } ?>
</div>

Gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *