怎麼在 smarty 模板中 判断注册函数获取的值为空
发布于:2022-01-17 09:50:54
#1 sky8652
公用部份(注册了一个全局函数)
function get_meat($params){
$id = $params["id"];
$key = $params["key"];
$conditions = array( 'user_id' => $id,'img_name' => $key );
$result = spDB('user_img')->find($conditions);
echo $result['img_path'];
}
spAddViewFunction('get_post_meta','get_meat');
模板部份(调用)
<{get_post_meta id="<{$results.user_id}>" key="img_n"}>
我想做个 判断 是否为空 <{if}> echo---<{else}> echo ---<{/if}> 突然间卡住了 不知道怎么做,
2012-05-10 17:37:53
#2 anythink
<{if $results.user_id == ''}><{get_post_meta id="<{$results.user_id}>" key="img_n"}><{get_post_meta id="<{$results.user_id}>" key="img_n"}>
<{else}>
<{/if}>
2012-05-10 18:32:59
#3 jake
因为smarty的注册函数的返回值是用于显示的,所以我们如果要获取另一个的返回值,就需要用smarty的引用对象来进行赋值,然后在函数外再用这个值。
1. 你的函数,加个$smarty参数:
function get_meat($params, $smarty){
2. 函数体里面:
function get_meat($params, $smarty){
$result = spDB('user_img')->find($conditions);
$smarty->assgin('
function_result_id', $result);
}
3. 在模板里面
<{get_post_meta key="img_n"}>
调用了函数以后,就等于给smarty加了个变量叫
function_result_id的,所以
<{if
$function_result_id != false}>
有值的情况
<{else}>
无值的情况
<{/if}>
2012-05-10 19:20:41
#4 sky8652
Hi...jake
我按照你的思維做
function get_meat($params,$smarty){
$id = $params["id"];
$key = $params["key"];
$conditions = array( 'user_id' => $id,'img_name' => $key );
$result = spDB('user_img')->find($conditions);
$smarty->assgin('function_result_id', $result['img_path']);
}
spAddViewFunction('get_post_meta','get_meat');
模板
<{if
$function_result_id != false}>
有值的情况
<{else}>
无值的情况
<{/if}>
出現以下情況,
Smarty Error: Call of unknown function 'assgin'
2012-05-11 09:54:16
#5 jake
哦搞错了单词,是assign,不是assgin。
http://www.smarty.net/docs/en/plugins.functions.tpl
2012-05-11 12:58:35
#6 sky8652
Thanks !jake
我也找到原来是单词写错
呵呵,,,,花了不少时间{:soso_e100:}
2012-05-11 13:20:53