如何在循环时只设置一个偏移量?
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 个,也许你有比模板语法的表达能力更大的问题。 :-)
我有一种情况需要从第 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 个,也许你有比模板语法的表达能力更大的问题。 :-)