在Smarty中至少运行一次循环

时间:2013-02-15 14:51:50

标签: php loops smarty do-while

如何在Smarty中至少运行一次我的循环?

如果我使用forto0我的循环永远不会被运行!

我有一个表单,我想至少显示一次,但如果fieldCounter的值大于1,则循环应运行到fieldCounter值。

{for $start=1 to $fieldCounter}
<input type="text" name="price{$start}" value="" />
{/for}

Smarty中有do {} while();吗?

2 个答案:

答案 0 :(得分:0)

您可以使用max()

{assign var=_to value=max($fieldCounter,1)}
{for $start=1 to $_to}
<input type="text" name="price{$start}" value="" />
{/for}

现在$_to始终至少为1

答案 1 :(得分:0)

您也可以尝试smartys {forelse}。

{for $start=1 to $fieldCounter}
  <input type="text" name="price{$start}" value="" />
{forelse}
  <input type="text" name="price1" value="" />
{/for}

http://www.smarty.net/docs/en/language.function.for.tpl