smarty 用php类的静态方法获取数据的同时assign了一个数组,模版如何获取这个数组变量? 100
smarty的版本是3.1.16在模版中用php类的静态方法获取数据,如Product::getdata()在获取产品列表的同时要把分页数据赋值给smarty,以备模版循...
smarty 的版本是3.1.16
在模版中用php类的静态方法获取数据,如Product::getdata()
在获取产品列表的同时要把分页数据赋值给smarty,以备模版循环完产品列表时调用
a.在smarty的debug 中可以看到分页数据赋值成功
b.在模版调用不到,出现错误提示
请问是调用时需要有何特殊写法,还有其他解决方法 展开
在模版中用php类的静态方法获取数据,如Product::getdata()
在获取产品列表的同时要把分页数据赋值给smarty,以备模版循环完产品列表时调用
a.在smarty的debug 中可以看到分页数据赋值成功
b.在模版调用不到,出现错误提示
请问是调用时需要有何特殊写法,还有其他解决方法 展开
8个回答
展开全部
给你两个建议:
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.在php页面获取数据后,注册到模板输出
-------PHP页面----------
$data=Product::getdata();
$smarty->assign('data',$data);
------模板页面--------
{section data=$data name="customer"}
<td>{$data[customer].price}</td>
{/section}
2.使用插件技术(block,function都可以),具体书写方法参考smarty手册中插件部分
追问
这个方法考虑过,但是这样就死板了;必须在对应的控制器里赋值处理过模版(视图)才能调用显示;需求是要在任意模版(视图)的任意位置随时都要可以调用显示。
smarty 3.0.7 的版本可以,但是3.1.x的版本就不行了; smarty 不是很熟有时间研究研究。
追答
你那个也未必是个好方法,而且看起来还不如直接书写原生态的php算了。如果真想灵活可以自己写插件(block,function插件都可以)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.数组和变量是相同的传值映射方法。
smarty->assign(赋值)
smarty->display(引用模板)
2.数组在模版调用的时候,需要循环输出,后者单个元素输出。
smarty->assign(赋值)
smarty->display(引用模板)
2.数组在模版调用的时候,需要循环输出,后者单个元素输出。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
smarty->assign(赋值)
smarty->display(引用模板)
模板里直接大括号括住就可以引用了~比如模板里可以写<div>{$type}</div>
smarty->display(引用模板)
模板里直接大括号括住就可以引用了~比如模板里可以写<div>{$type}</div>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
smarty里面不能直接调用PHP的类和方法!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这不是错误,可以通过配置php.ini可以屏蔽Notice提示
更多追问追答
追问
已经屏蔽过错误提示,是模版中的变量取不到数据
追答
你的getdata()这个function是通过$smarty->assign()给页面传值的吗?
如果是这样,你的page_data只在foreach循环体内有效。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询