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

时间:2017-08-22 03:02:20

标签: silverstripe

我有一种情况需要从第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 %>

有没有办法只设置偏移量,或者可能采取另一种方法来解决这个问题?

2 个答案:

答案 0 :(得分:5)

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

@Input("_disabled") disabled: boolean;

但我会质疑你是否真的想要运行无限制的查询,因此,我认为更简单的解决方法是在模板上为public function OtherGalleryImages() { return $this->GalleryImages()->limit(null, 6); } 添加一个合理的数字,就像你有完成。如果你的数量超过100,那么你的问题可能比模板语法的表现力要大。 : - )

答案 1 :(得分:-3)

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

使用切片的优点是,如果数组太短或太长,它将返回一个空数组而不是null,从而避免错误