[英]PHP foreach only returning 1st attribute value of Magento multiselect on product page
标题几乎说明了一切。 我正在尝试输出与属性值具有相同ID的静态块,但是我的代码仅输出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();
}
?>
这里的问题是您的$value
块ID错误。 看一下$_product->getResource()->getAttribute('collection1')->getFrontend()->getValue($_product)
,您可能会注意到它实际上看起来像这样: collection3, collection6
。 注意逗号后的空格。 当运行explode(",", $cmsstatic)
时,将在结果数组中获得空格。 由于第一个块ID不包含多余的空格,因此它是有效的,但随后的任何一个都不是。
explode(", ", $cmsstatic)
$this->getLayout()->createBlock('cms/block')->setBlockId(trim($value))->toHtml()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.