我正在聪明地工作,每次在遍历foreach循环时都难以添加+1,而是为所有循环添加了相同的数字。无论如何,有没有在smarty中添加一个计数器,该计数器为他打印的每个类都添加+1,因此所有类都互不相同。
$title is defind as 0 in another file
{foreach from=$articles item=article}
<h2 class="title{$title + 1}">{$article[0]}</h2>
<p class="article">{$article[1]}</p>
<img class="image" src="{$article[2]}" alt="foobar" />
{/foreach}
答案 0 :(得分:0)
您实际上可以使用键/值对
使用密钥而不是计数器。这是正确的方法。
{foreach from=$myArray key=k item=v}
<li>{$k}: {$v}</li>
{/foreach}
在这里您可以启用密钥,这对Smarty来说是很自然的。现在,此关键变量将随每个循环自然移动,从而使您可以访问计数器。如果需要,您可以实际在哪个数学模型中进行数学运算。在您的代码中,您始终添加1,而该位置将不会移动。
此处的更多详情https://www.smarty.net/docsv2/en/language.function.foreach.tpl
答案 1 :(得分:0)
上面的答案很好,但是如果由于某些原因必须使用方法,则需要在每次迭代期间重新定义变量$title
,因为现在每次迭代前变量的值都是0。所以会是
{foreach from=$articles item=article}
{assign var='title' value=$title + 1}
<h2 class="title{$title}">{$article[0]}</h2>
<p class="article">{$article[1]}</p>
<img class="image" src="{$article[2]}" alt="foobar" />
{/foreach}