如何在第一个结果处跳出 foreach 循环并从第二个结果继续循环
How to break out of the foreach loop at first result and continue loop from the 2nd result
我添加了此 foreach
用于打印图库图像。但我不想在图库图片中打印图库缩略图。
所以我尝试计算所有可用图像并初始化另一个变量 $i=0
。因此,如果 $i == 0
,则意味着第一张图像是缩略图,因此它应该跳出 foreach 循环并重新启动循环以打印第二张图像。
代码如下:
@php
$i = 0;
$len = count($gallery->galleryImages->where( 'gli_dimension', 'fullsize' ));
@endphp
@foreach( $gallery->galleryImages->where( 'gli_dimension', 'fullsize' ) as $img )
@if ($i == 0)
@php
$i++;
break;
@endphp
@endif
<div style="display: none;">
<a href="{{ \Illuminate\Support\Facades\Storage::url( $img['gli_path']) }}"
data-fancybox="images-preview{{$gallery->gly_id}}"
data-width="1500" data-height="1000"
data-thumb="{{ \Illuminate\Support\Facades\Storage::url( $img['gli_path'] ) }}"
data-caption="{{ $gallery->gly_title }}"></a>
</div>
@endforeach
但现在的问题是,它打印出的是缩略图,而不是图库图像。
但是,它应该打印除缩略图之外的所有图库图像。
那么如何在第一个结果处跳出 foreach 循环并正确地从第二个结果继续循环呢?
我有更好的解决方案给你。
使用新列 'image_type' 将数据库中的缩略图图像和画廊图像分开,将值设置为 0,其中图像是缩略图,并将值设置为 1,其中图像是所有其他画廊图像。
因此,您可以通过在 sql 查询中应用条件,例如 'select * from table where image_type = 1'
,轻松获取所有图库图像
laravel provides loop variables
另外当你使用break时它会跳出一个循环。所以使用 continue 而不是 break
@php
$i = 0;
$len = count($gallery->galleryImages->where( 'gli_dimension', 'fullsize' ));
@endphp
@foreach( $gallery->galleryImages->where( 'gli_dimension', 'fullsize' ) as $img )
@if ($loop->first)
@php
$i++;
continue;
@endphp
@endif
<div style="display: none;">
<a href="{{ \Illuminate\Support\Facades\Storage::url( $img['gli_path']) }}"
data-fancybox="images-preview{{$gallery->gly_id}}"
data-width="1500" data-height="1000"
data-thumb="{{ \Illuminate\Support\Facades\Storage::url( $img['gli_path'] ) }}"
data-caption="{{ $gallery->gly_title }}"></a>
</div>
@endforeach
我添加了此 foreach
用于打印图库图像。但我不想在图库图片中打印图库缩略图。
所以我尝试计算所有可用图像并初始化另一个变量 $i=0
。因此,如果 $i == 0
,则意味着第一张图像是缩略图,因此它应该跳出 foreach 循环并重新启动循环以打印第二张图像。
代码如下:
@php
$i = 0;
$len = count($gallery->galleryImages->where( 'gli_dimension', 'fullsize' ));
@endphp
@foreach( $gallery->galleryImages->where( 'gli_dimension', 'fullsize' ) as $img )
@if ($i == 0)
@php
$i++;
break;
@endphp
@endif
<div style="display: none;">
<a href="{{ \Illuminate\Support\Facades\Storage::url( $img['gli_path']) }}"
data-fancybox="images-preview{{$gallery->gly_id}}"
data-width="1500" data-height="1000"
data-thumb="{{ \Illuminate\Support\Facades\Storage::url( $img['gli_path'] ) }}"
data-caption="{{ $gallery->gly_title }}"></a>
</div>
@endforeach
但现在的问题是,它打印出的是缩略图,而不是图库图像。
但是,它应该打印除缩略图之外的所有图库图像。
那么如何在第一个结果处跳出 foreach 循环并正确地从第二个结果继续循环呢?
我有更好的解决方案给你。 使用新列 'image_type' 将数据库中的缩略图图像和画廊图像分开,将值设置为 0,其中图像是缩略图,并将值设置为 1,其中图像是所有其他画廊图像。 因此,您可以通过在 sql 查询中应用条件,例如 'select * from table where image_type = 1'
,轻松获取所有图库图像laravel provides loop variables
另外当你使用break时它会跳出一个循环。所以使用 continue 而不是 break
@php
$i = 0;
$len = count($gallery->galleryImages->where( 'gli_dimension', 'fullsize' ));
@endphp
@foreach( $gallery->galleryImages->where( 'gli_dimension', 'fullsize' ) as $img )
@if ($loop->first)
@php
$i++;
continue;
@endphp
@endif
<div style="display: none;">
<a href="{{ \Illuminate\Support\Facades\Storage::url( $img['gli_path']) }}"
data-fancybox="images-preview{{$gallery->gly_id}}"
data-width="1500" data-height="1000"
data-thumb="{{ \Illuminate\Support\Facades\Storage::url( $img['gli_path'] ) }}"
data-caption="{{ $gallery->gly_title }}"></a>
</div>
@endforeach