PHP 标签内的 Smarty 对象属性
我有一个聪明的应用程序,其中正在打印一系列地址。它也有一个邮政编码,所以在我使用的模板中的某个时刻。
{foreach item=i from=$members}
{$i.ZIP}
{/foreach}
尽管我严格将邮政编码设置为 5 位数字,但上面的代码仍然有效,我知道可以通过以下代码来完成。
{foreach item=i from=$members}
substr_replace("00000", {$i.ZIP}, 5 - strlen({$i.ZIP}));
{/foreach}
但上面的代码不起作用并给出运行时错误。我有什么遗漏的吗?
I have an smarty application where a series of addresses are being printed. It has a zip code too so at some point in template I am using.
{foreach item=i from=$members}
{$i.ZIP}
{/foreach}
The above code works though I am strictly making zip codes to 5 digits which I know can be accomplished by the following code.
{foreach item=i from=$members}
substr_replace("00000", {$i.ZIP}, 5 - strlen({$i.ZIP}));
{/foreach}
But the above code doesn't work and gives run time error. Is there something I am missing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
除非将 PHP 代码包装在 {php} 标记中,否则不能在 Smarty 模板中使用 PHP 代码。在这种情况下,您可以使用 来避免这种情况字符串格式。
我认为应该这样做:
{$i.ZIP|string_format:"%05s"}
You can't use PHP code in a Smarty template unless you wrap it in {php} tags. In this case, you can avoid that by using string_format.
I think this should do:
{$i.ZIP|string_format:"%05s"}