gpt4 book ai didi

silverstripe - 如何在循环中获得倒数第二个项目

转载 作者:行者123 更新时间:2023-12-04 05:31:05 25 4
gpt4 key购买 nike

Silverstripe 具有用于获取循环中的第一个和最后一个项目以及当前项目在循环中的位置/计数的帮助程序。

虽然我找不到如何捕捉倒数第二个项目......

我尝试过一些琐碎的事情(通常适用于大多数语言),例如

<!-- Right now I know the total is 11, so result should be 10 -->
<!-- Total value will always vary so needs to be dynamically worked out -->

<% if $Pos == $TotalItems-1 %>
$Pos
<% end_if %>

&&

<% if $Last-1 %>
$Pos
<% end_if %>

这不起作用,AFAIK 不像 JavaScript 或 PHP 或任何你不能拍 -1 来获得循环/数组中倒数第二个项目的东西。

我需要做什么来实现这一目标?

最佳答案

您可以使用 $FromEnd为了那个原因。它将返回到列表末尾的距离。默认情况下,它以 1 开头, 同 $Pos做。所以列表中的最后一项是 $FromEnd == 1 .列表中的倒数第二项是 $FromEnd == 2 .

您还可以将开始索引作为参数传递给函数,因此这也将选择倒数第二项:$FromEnd(0) == 1 .

在您的模板中,这将如下所示:

<% if $FromEnd(0) == 1 %>
<%-- conditional stuff for the second-last item --%>
<% end_if %>

<% if $FromEnd(0) < 2 %>
<%-- conditional stuff for the two last items in a list --%>
<% end_if %>

一般来说,我几乎从不使用这些方法。如果它与正确格式化的项目有关,我建议改用 CSS(例如 nth-childnth-last-of-type 等)。

关于silverstripe - 如何在循环中获得倒数第二个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37486256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com