如何使用Smarty中的if语句查明数据是否为空?

时间:2013-12-13 03:14:20

标签: php smarty

我现在正在学习聪明。我发现它真的很棒。但我遇到了一个错误,我不知道如何解决这个问题。因为我有一个用PHP编写的代码,我将其转换为智能模板。

我有一个if语句,但在验证数据时出现错误

Fatal error: Smarty error: [in addons/maptool/views/maps/update.tpl line 59]: syntax error: unrecognized tag: if(!$locations.updated_lat ? $locations.updated_lat : $locations.geo_alt) (Smarty_Compiler.class.php, line 445)

我的目标是简单地验证变量是否为空或不等于0.我做的是:

<div class="map_canvas" align="center" id="map_canvas_{$locations.company_id}" style="width: 800px; height: 300px; margin: 10px; border-style: solid; border-color: #0a9ccc" data-company-city="" data-company_id="{$locations.company_id}" data-label="{$locations.company}" data-lat="{if(!$locations.updated_lat ? $locations.updated_lat : $locations.geo_alt)}" data-long="    {if(!$locations.updated_long ? $locations.updated_long : $locations.geo_long)}"></div>

这是smarty if声明的一部分:

{if(!$locations.updated_lat ? $locations.updated_lat : $locations.geo_alt)}

我的数据没有问题但是if语句是错误的。好的,谢谢。

2 个答案:

答案 0 :(得分:1)

您可以使用|default修饰符来测试变量是否已定义,您可能需要编写自己的变量来测试是否为空。

{if $locations.updated_lat|default:$locations.geo_alt}

答案 1 :(得分:0)

您可以使用以下代码进行检查

{if "" != $var)

对变量的检查不是空或空