smarty 用php类的静态方法获取数据的同时assign了一个数组,模版如何获取这个数组变量? 100

smarty的版本是3.1.16在模版中用php类的静态方法获取数据,如Product::getdata()在获取产品列表的同时要把分页数据赋值给smarty,以备模版循... smarty 的版本是3.1.16
在模版中用php类的静态方法获取数据,如Product::getdata()

在获取产品列表的同时要把分页数据赋值给smarty,以备模版循环完产品列表时调用

a.在smarty的debug 中可以看到分页数据赋值成功

b.在模版调用不到,出现错误提示

请问是调用时需要有何特殊写法,还有其他解决方法
展开
 我来答
百度网友d7e10266d1
2014-01-17 · TA获得超过5480个赞
知道小有建树答主
回答量:713
采纳率:0%
帮助的人:706万
展开全部
给你两个建议:
1.在php页面获取数据后,注册到模板输出
-------PHP页面----------
$data=Product::getdata();
$smarty->assign('data',$data);
------模板页面--------
{section data=$data name="customer"}
<td>{$data[customer].price}</td>
{/section}

2.使用插件技术(block,function都可以),具体书写方法参考smarty手册中插件部分
追问
  1. 这个方法考虑过,但是这样就死板了;必须在对应的控制器里赋值处理过模版(视图)才能调用显示;需求是要在任意模版(视图)的任意位置随时都要可以调用显示。

  2. smarty 3.0.7 的版本可以,但是3.1.x的版本就不行了; smarty 不是很熟有时间研究研究。

追答
你那个也未必是个好方法,而且看起来还不如直接书写原生态的php算了。如果真想灵活可以自己写插件(block,function插件都可以)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenyue9_m
2014-01-16
知道答主
回答量:69
采纳率:0%
帮助的人:4.7万
展开全部
1.数组和变量是相同的传值映射方法。
smarty->assign(赋值)
smarty->display(引用模板)
2.数组在模版调用的时候,需要循环输出,后者单个元素输出。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qwqwqqwcom123
2014-01-10 · TA获得超过1163个赞
知道小有建树答主
回答量:256
采纳率:0%
帮助的人:135万
展开全部
smarty->assign(赋值)
smarty->display(引用模板)
模板里直接大括号括住就可以引用了~比如模板里可以写<div>{$type}</div>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小叶顾10
2014-01-10 · TA获得超过256个赞
知道小有建树答主
回答量:211
采纳率:0%
帮助的人:108万
展开全部
smarty里面不能直接调用PHP的类和方法!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大庞说故事
2014-01-10 · 正八经儿的讲故事!
大庞说故事
采纳数:123 获赞数:313

向TA提问 私信TA
展开全部
这不是错误,可以通过配置php.ini可以屏蔽Notice提示
更多追问追答
追问
已经屏蔽过错误提示,是模版中的变量取不到数据
追答
你的getdata()这个function是通过$smarty->assign()给页面传值的吗?
如果是这样,你的page_data只在foreach循环体内有效。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式