PHP foreach только возвращает 1-е значение атрибута мультиселекта Magento на странице продукта

Название в значительной степени говорит обо всем. Я пытаюсь вывести статический блок с тем же идентификатором, что и значение атрибута, однако мой код выводит только значение атрибута FIRST.

Следующий код находится в файле view.phtml и выводит первый статический блок из 5 выбранных значений множественного выбора.

Любая помощь с благодарностью!

<?php
$cmsstatic = $_product->getResource()->getAttribute('collection1')->getFrontend()->getValue($_product);
$blockids = explode(",", $cmsstatic);
foreach($blockids as $kry=>$value)
{
echo $this->getLayout()->createBlock('cms/block')->setBlockID($value)->tohtml();

}
?>

1

Решение

Проблема в том, что ваш $value неправильные идентификаторы блоков Посмотрите на вывод из $_product->getResource()->getAttribute('collection1')->getFrontend()->getValue($_product) и вы, вероятно, заметите, что на самом деле это выглядит примерно так: collection3, collection6, Обратите внимание на пробелы после запятых. Когда ты бежишь explode(",", $cmsstatic) вы получаете пробелы в полученном массиве. Поскольку первый идентификатор блока не содержит лишних пробелов, он действителен, но ни один из следующих не будет.

Решение 1

explode(", ", $cmsstatic)

Решение 2

$this->getLayout()->createBlock('cms/block')->setBlockId(trim($value))->toHtml()
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]