2011-03-30 35 views
2

令人惊讶无法找到这样的东西......基本上我所说的产品视图页面上我的自定义产品属性是这样的:显示产品属性值,只有当它存在

Men/Women: <?php echo $this->htmlEscape($_product->getmenwomen()) ?> 

这显示了男/女属性很好,但这些都是可选的值,因此如果一个产品不具有这种特殊属性的值,仍然显示行,就没有任何价值:

Men/Women: 

我想该行不如果真的存在,就没有价值的产品。有任何想法吗?

回答

4

您必须在打印之前检查getmenwomen()的值是否真的包含您期望它包含的内容(例如男性/女性)。在这个例子中,我假定除了空白之外的任何东西都是有效的值。

$menwomen = $_product->getmenwomen(); 
if (trim($menwomen)) { 
    echo "Men/Women: ".$this->htmlEscape($menwomen); 
} 
+0

这样做的伎俩,谢谢! – rocky 2011-03-30 22:16:14

0

不是100%,因为我不知道如果getmenwomen()将返回false,如果它为空 如果没有东西要返回,默认情况下它应该返回false。

<?php 
    if ($var = $this->htmlEscape($_product->getmenwomen()) { 
    echo "Men/Women: " + $var; 
    } 
?> 
+0

谢谢你的帮助克里斯,User684736的答案似乎有伎俩。 – rocky 2011-03-30 22:20:05

0

你的意思是你想,如果有一个值,没有什么显示一切,如果有没有?只需添加一个简单的条件:

if (!empty($this->htmlEscape($_product->getmenwomen()))) 
    echo 'Men/Women: '.$this->htmlEscape($_product->getmenwomen()); 

就是这样,你甚至不需要其他的东西。

+0

谢谢linus,但那代码扔了我这个错误 - “致命错误:不能在写入上下文中使用方法返回值” – rocky 2011-03-30 22:18:35

相关问题