2014-02-08 3 views
3

Я пытаюсь сделать цикл запущенным только 3 раза, независимо от того, сколько у него есть.SilverStripe Children Of, loop только 3 раза

<% loop $ChildrenOf(Sponsors) %> 
     <li> 
      <a href="$TargetURL" target="_blank"> 
       <img src="$Logo.Link" alt="image" /> 
      </a> 
     </li> 
    <% end_loop %> 

То, что я думал о выполнении объявляет переменную-счетчик, и если она попадает 3 перерыв вызова, однако, когда я делаю это:

<% $counter = 0 %> 

разрывы страниц, он не бросает какие-либо ошибки, но любая строка кода после этого не будет отображаться.

Как я могу сделать этот перерыв цикла после его запуска 3 раза?

ответ

7

Эта документация покрыта в документации SilverStripe Templates. Это должно сработать:

<% loop $ChildrenOf(Sponsors).Limit(3) %> 
    <li> 
     <a href="$TargetURL" target="_blank"> 
      <img src="$Logo.Link" alt="image" /> 
     </a> 
    </li> 
<% end_loop %> 
+0

Спасибо, есть ли способ проверить, является ли цикл на его первой или второй итерации? – Bojan

+0

Да, вы можете использовать один из индикаторов положения (например, $ Pos), задокументированный в ссылке в моем ответе. –

Смежные вопросы