Smarty 3 或更早版本中有类似 Dwoo-s {with} 或 {loop} 的东西吗?
Dwoo 模板引擎中的 {with} 和 {loop} 插件更改变量名称解析的默认上下文。
: 提供 template
{$arr.foo}
{with $arr} {$foo} / {$arr.foo} {/with}
如果在 Dwoo 中使用 data
array('arr' => array( 'foo' => 'bar' ))
: ,它将输出:
bar
bar /
因为第二个 {$arr.foo} 实际上意味着全局上下文中的 {$arr.arr.foo} 。
你知道如何在Smarty中实现类似的效果吗?
是否有一些内置功能或第三方插件可以让我拥有这个?
如果这样的插件不存在,您知道如何构建它吗?
{with} and {loop} plugins in Dwoo template engine change default context for variable name resolution.
If in Dwoo you feed template:
{$arr.foo}
{with $arr} {$foo} / {$arr.foo} {/with}
with data:
array('arr' => array( 'foo' => 'bar' ))
it will output:
bar
bar /
because second {$arr.foo} actually means {$arr.arr.foo} in global context.
Do you know how can I achieve similar effect in Smarty?
Is there some builit in functionality or third party plugin that might allow me to have this?
Do you have any idea how to build such a plugin if it does not exist?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你可以使用 foreach 来实现循环:
但是,如果你正在寻找
with
的替代品,恐怕 Smarty 中没有类似的命令。You have foreach to achive the
loop
:If you are however searching for a replacement of
with
, I'm afraid there is no similar command in Smarty.据我所知,在 Smarty 3 或更早版本中无法实现此效果。
To my knowledge you can't achieve this effect in Smarty 3 or earlier.