如何在循环时只设置一个偏移量?

How to set only an offset when looping?

我有一种情况需要从第 7 张图片开始循环播放我的图片,例如

// This shows the first 6 images

<% loop $GalleryImages.Limit(6) %>

    <img src="$Image">

<% end_loop %>

--

然后我需要从病房的第7张图片开始显示。我们可以在这里使用偏移量但是我们必须设置一个限制(第一个参数)

<% loop $GalleryImages.Limit(100, 6) %>

    <img src="$Image">

<% end_loop %>

有没有办法只设置偏移量或者我应该用另一种方法来解决这个问题?

PHP 的 array_slice 方法允许您指定一个开始,而无需知道数组的长度。 http://php.net/manual/en/function.array-slice.php

使用slice的好处是如果数组太短或太长,都会return一个空数组而不是null,从而避免错误

最干净的做法是在您的控制器或模型中创建一个 运行 查询的方法。

public function OtherGalleryImages()
{
  return $this->GalleryImages()->limit(null, 6);
}

但我会质疑您是否真的想要 运行 无限查询,因此,我认为更简单的解决方法是在您的 limit 中添加一个合理的数字模板,就像你所做的那样。如果你有超过 100 个,也许你有比模板语法的表达能力更大的问题。 :-)