Vhs-viewhelper和for循环

时间:2016-11-29 15:15:41

标签: typo3 fluid typo3-6.2.x

我正在尝试从当前新闻项目中获取下一个新闻项目。 使用扩展名“vhs”和tx_news。

{namespace v=FluidTYPO3\Vhs\ViewHelpers}
<f:for each="{news}" as="newsItem" iteration="iterator">
    Current title: {newsItem.title}
    <v:variable.set name="nextNews" value="{v:iterator.next(needle: newsItem, haystack: news)}"/>
    Next title: {nextNews.title}
</f:for>

它会打印一次正确的标题。然后循环突然结束。

2 个答案:

答案 0 :(得分:0)

我会尝试设置一个条件来赶上最后一次迭代,因为没有更多&#34; next&#34;消息。

{namespace v=FluidTYPO3\Vhs\ViewHelpers}
<f:for each="{news}" as="newsItem" iteration="iterator">
  Current title: {newsItem.title}
  <f:if condition="{iterator.isLast}">
    <f:else>
      <v:variable.set name="nextNews" value="{v:iterator.next(needle: newsItem, haystack: news)}"/>
      Next title: {nextNews.title}
    </f:else>
  </f:if>
</f:for>

答案 1 :(得分:0)

昨天我在for-loop中设置变量时遇到了问题。 我通过清除该变量解决了这个问题。 在你的情况下,我会尝试以下:

{namespace v=FluidTYPO3\Vhs\ViewHelpers}
<f:for each="{news}" as="newsItem" iteration="iterator">
<v:variable.set name="nextNews" value="" />
Current title: {newsItem.title}
<v:variable.set name="nextNews" value="{v:iterator.next(needle: newsItem, haystack: news)}"/>
Next title: {nextNews.title}
</f:for>

在设置之前(再次)清除变量。 至少我会尝试:)