繁体   English   中英

PHP foreach仅在产品页面上返回Magento multiselect的第一属性值

[英]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不包含多余的空格,因此它是有效的,但随后的任何一个都不是。

解决方案1

explode(", ", $cmsstatic)

解决方案2

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM