我正在尝试从当前新闻项目中获取下一个新闻项目。 使用扩展名“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>
它会打印一次正确的标题。然后循环突然结束。
答案 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>
在设置之前(再次)清除变量。 至少我会尝试:)