我有一个保修_人工的下拉 magento 属性。我使用我的主题product/view.phtml 拉入该属性,然后附加一个图标来显示您获得的保修。
我使用了这段成功运行的代码:
<?php $warranty=$_product->getAttributeText('warranty_labour'); echo '<img style="padding-top: 10px;" src="/images/warrantylabour/'.str_replace(' ', '_',$warranty).'.png" alt="'.$warranty.'">'; ?>
当产品没有设置保修属性(后端留空)时我发现的问题我仍然将代码插入到前端的产品源代码中,如下所示:
<img style="pad`ding-top: 10px;" src="/images/warrantylabour/.png" alt="">`
当属性中未设置值时,有没有办法阻止这种情况发生?
不要忘记逻辑! :-) 只需测试
$warranty
是否具有值 使用典型的 Magento 模板约定:
<?php if($warranty=$_product->getAttributeText('warranty_labour')): ?>
<?php echo sprintf('<img style="padding-top: 10px;" src="/images/warrantylabour/%s.png" alt="%s"/>', str_replace(' ', '_',$warranty),$warranty) ?>
<?php endif; ?>
我认为这种语法可能证明将这种逻辑和字符串构建封装到辅助方法中是合理的。