Получить метку опции, связанную с магазином администратора в Magento 2


Я хочу просмотреть все параметры атрибутов, настроенных для фильтрации, и вывести метку представления хранилища администратора. Мне удалось получить только метку представления магазина по умолчанию (store_id 1) со следующим кодом:

$coll = $this->_objectManager->create(\Magento\Catalog\Model\ResourceModel\Product\Attribute\Collection::class);
$coll->addIsFilterableFilter();
$layeredNavAttributes = $coll->load()->getItems();

foreach ($layeredNavAttributes AS $attr) {
    $options = $attr->getSource()->getAllOptions();
    foreach ($options AS $option) {
      echo $option['label'];
    }
}

Как я могу получить ярлыки представления магазина администратора (идентификатор хранилища 0) вместо этого?

Author: Thomas, 2016-10-17

1 answers

После еще нескольких попыток я сам пришел к ответу. Просто вызовите метод setStoreId() для каждого атрибута. Таким образом, код для получения ярлыков администратора выглядит следующим образом:

$coll = $this->_objectManager->create(\Magento\Catalog\Model\ResourceModel\Product\Attribute\Collection::class);
$coll->addIsFilterableFilter();
$layeredNavAttributes = $coll->load()->getItems();

foreach ($layeredNavAttributes AS $attr) {
    $attr->setStoreId(0);
    $options = $attr->getSource()->getAllOptions();
    foreach ($options AS $option) {
      echo $option['label'];
    }
}
 3
Author: Thomas, 2016-10-17 13:49:10