Magento 2 - Как отобразить статический блок на основе выпадающего списка созданного атрибута?
Я достиг этой функциональности в Magento 1 выполните следующие действия:
- Создал атрибут "таблица размеров" с параметрами "футболки" и "платья".
- Присвоено соответствующее значение атрибута для каждого продукта.
- Создано 2 блока с идентификаторами "футболки" и "платья".
- В шаблон продукта я добавил следующий код:
<?php $sizeguide = $_product->getAttributeText('sizetable');
if ($sizeguide): ?>
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId($sizeguide)->toHtml() ?>
<?php endif; ?>
Однако этот процесс не работает в Magento 2.
1
Author: Luis Garcia, 2016-06-24
2 answers
Ваш вызов блока неверен, в Magento 2 он должен называться
$this->getLayout()->createBlock('Magento\Cms\Block\Block')->setBlockId($sizeguide)->toHtml()
Я выполнил все ваши шаги и добавил следующий код в файл шаблона, и все работало нормально.
/* $_product = $block->getProduct(); */
$sizeguide = $_product->getAttributeText('sizetable');
if ($sizeguide):
echo $this->getLayout()->createBlock('Magento\Cms\Block\Block')->setBlockId($sizeguide)->toHtml();
endif;
3
Author: Ekta Puri, 2016-07-28 01:01:05
Вы также можете сделать вот так.
$_product = $block->getProduct();
$attribute = $_product->getResource()->getAttribute('sizetable');
if ($attribute)
{
$sizetable = $attribute ->getFrontend()->getValue($_product);
echo $this->getLayout()->createBlock('Magento\Cms\Block\Block')->setBlockId($sizeguide)->toHtml();
}
0
Author: Ravi Thanki, 2016-08-01 06:02:51