自定义函数的数组如何在模板同一个一个地取出显示?
发布于:2022-01-17 09:50:54
#1 gnuser
1、我在Extensions文件夹中做了一个自定义函数的文件:spUserInfo.php
function user($Uid){
$table=spClass("user");
$result=$table->find("Uid=$Uid");
return $result;
}
function tpl_user($params){
return user($params['Uid']);
}
spAddViewFunction('theUser','tpl_user');
2、spModel、入口文件等都设置好,没有问题
3、在用户数据表user中有Uid Uname Uregtime Ulogintime Uemail Uqq等字段。
4、现在在要在对应的user.html中输出该用户的各项信息,用
<{theUser Uid=$Uid}>
无法获得信息。请问应该用什么方法来获取?
谢谢
2011-06-13 20:35:01
#2 jake
“无法获得信息”具体是什么提示呢?
这样检查,首先是看模板函数有没有载入和能使用了。tpl_user函数里面直接返回个值(不查数据库),看看tpl_user是否正常工作了,如果没有,那么就检查spAddViewFunction是否已经执行,也就是在入口文件或者别的地方有没有载入spUserInfo.php文件了,没有则要用import把它载入。
然后是检查user函数,也是直接返回些字符串试试看。或者可以dump($table);看看有什么。
2011-06-13 21:21:11
#3 gnuser
不用return,改用dump($result)能正常输出
结果如:
Array
(
[Uid] => 3
[Uname] => gnuser
[Uregtime] => 2011-06-12 23:55:36
)
表示信息还是能够获取的。就是在user.html中用<{theUser Uid=$Uid}>输出return $result的方式不对以至于是空白。
现在把要在user.html中输出的代码放到自定义函数中,替换了return $result:
function user($Uid){
$table=spClass("user");
$result=$table->find("Uid=$Uid");
echo "用户名:".$result['Uname']."
";
echo "注册时间:".$result['Uregtime']."
";
}
改成这样后在user.html中用<{theUser Uid=$Uid}>输出就能正常了。结果如:
2011-06-13 22:36:37
#4 gnuser
不用return,改用dump($result)能正常输出
结果如:
Array
(
[Uid] => 3
[Uname] => gnuser
[Uregtime] => 2011-06-12 23:55:36
)
表示信息还是能够获取的。就是在user.html中用<{theUser Uid=$Uid}>输出return $result的方式不对以至于是空白。
现在把要在user.html中输出的代码放到自定义函数中,替换了return $result:
function user($Uid){
$table=spClass("user");
$result=$table->find("Uid=$Uid");
echo "用户名:".$result['Uname']."
";
echo "注册时间:".$result['Uregtime']."
";
}
改成这样后在user.html中用<{theUser Uid=$Uid}>输出就能正常了。结果如:
用户名:XXXX
注册时间:2011-12-12
按目前的测试结果表明,<{theUser Uid=$Uid}>输出的应该是字符(串)而无法输出数组。
请教有没有办法输出数组,并且能够把数组中各键的值分别一一输出?
2011-06-13 22:57:42
#5 jake
。。。模板函数是只能输出字符串,数组是一种语言结构。
“有没有办法输出数组,并且能够把数组中各键的值分别一一输出?”,你先在函数里面把“数组中各键的值分别一一输出”到一个字符串中,然后再return这个字符串就可以了。
2011-06-14 08:56:46
#6 gnuser
谢谢老大指点。我想输出到一个字符串与上面的方式差不多。这个问题总算有点明白了。
2011-06-14 13:30:16