【问题标题】:Vhs-viewhelper and for loopVhs-viewhelper 和 for 循环
【发布时间】:2017-04-13 15:40:27
【问题描述】:

我正在尝试从当前新闻项目中获取下一个新闻项目。 使用扩展名“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>

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

【问题讨论】:

    标签: typo3 fluid typo3-6.2.x


    【解决方案1】:

    我会尝试设置一个条件来赶上上一次迭代,因为没有更多的“下一个”新闻。

    {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>
    

    【讨论】:

    • 试过了,没有变化。
    • 请尝试激活错误显示,并可能在安装工具中将您的 ip 设置为 devIpMask。没有任何错误,我们只能猜测它可能是什么。
    【解决方案2】:

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

    {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>
    

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

    【讨论】:

      猜你喜欢
      • 2015-11-20
      • 2016-05-17
      • 2023-04-01
      • 1970-01-01
      • 2021-07-30
      • 2014-03-15
      • 2019-01-17
      • 2012-07-25
      • 1970-01-01
      相关资源
      最近更新 更多