как инициализировать итерацию цикла for в операторе продолжения, используя smarty - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть эта куча кода, здесь я выбираю данные за весь год, поэтому в foreach я проверяю одно условие;если год больше текущего года, то пропустить этот год с помощью оператора continue.

Моя проблема заключается в пропуске лет, итерация также пропускается в соответствии с пропущенными годами.

Если пропущено 2 года, тоитерация начнется с 3 вместо 1.

Есть ли какое-либо решение, как я могу переопределить переменную итерации в smarty.

Используя шаблон smarty, я не получаю никаких решений, как инициализировать переменную итерации в elseчасть.

Ниже я разместил свой код:

 {foreach from=$histories key=year  item=i name=foo }
    {if $i.year >= date("Y")}
    {continue}
    {else}
   //how to initialise smarty variable here to 1;  
    {/if}
    <tr>
    <td><a href="{$urls.history_details|replace:'%s':$i.year}">{$smarty.foreach.foo.iteration}</a></td>
    <td><a href="{$urls.history_details|replace:'%s':$i.year}">{$i.year}</a></td>
    <td><a href="{$urls.history_details|replace:'%s':$i.year}">{$i.country}</a></td>
    <td><a href="{$urls.history_details|replace:'%s':$i.year}">{$i.location}    </a></td>

    </tr>

    {/foreach}

1 Ответ

0 голосов
/ 20 сентября 2018

Вместо пропуска итерации, если условие выполнено;вы можете продолжить работу с вашими данными в обратном порядке, вы можете продолжить работу с данными , если год меньше текущего года

Вот что вы можете сделать;

{foreach from=$histories key=year  item=i name=foo }
    {if $i.year < date("Y")}
        {* Your code with row details here *}
    {/if}
{/foreach}
...