如何在 laravel 刀片视图中打破 foreach 循环?

Posted

技术标签:

【中文标题】如何在 laravel 刀片视图中打破 foreach 循环?【英文标题】:How to break a foreach loop in laravel blade view? 【发布时间】:2017-12-24 15:56:20 【问题描述】:

我有一个这样的循环:

@foreach($data as $d)
    @if(condition==true)
        $d
        // Here I want to break the loop in above condition true.
    @endif
@endforeach

如果满足条件,我想在数据显示后中断循环。

在 laravel 刀片视图中如何实现?

【问题讨论】:

@endif之前使用@break 【参考方案1】:

来自Blade docs:

使用循环时,您还可以结束循环或跳过当前 迭代:

@foreach ($users as $user)
    @if ($user->type == 1)
        @continue
    @endif

    <li> $user->name </li>

    @if ($user->number == 5)
        @break
    @endif
@endforeach

【讨论】:

@break 的工作方式类似于循环中其他中断的用法?【参考方案2】:

你可以这样打破

@foreach($data as $d)
    @if($d === "something")
        $d
        @if(condition)
            @break
        @endif
    @endif
@endforeach

【讨论】:

【参考方案3】:

基本用法

默认情况下,blade 没有@break@continue,这对拥有它们很有用。所以包括在内。

此外,$loop 变量被引入循环内部,(几乎)与 Twig 完全一样。

基本示例

@foreach($stuff as $key => $val)
     $loop->index;       // int, zero based
     $loop->index1;      // int, starts at 1
     $loop->revindex;    // int
     $loop->revindex1;   // int
     $loop->first;       // bool
     $loop->last;        // bool
     $loop->even;        // bool
     $loop->odd;         // bool
     $loop->length;      // int

    @foreach($other as $name => $age)
        $loop->parent->odd;
        @foreach($friends as $foo => $bar)
            $loop->parent->index;
            $loop->parent->parentLoop->index;
        @endforeach
    @endforeach 

    @break

    @continue

@endforeach

【讨论】:

【参考方案4】:
@foreach($data as $d)
    @if(condition==true)
        $d
        @break // Put this here
    @endif
@endforeach

【讨论】:

【参考方案5】:

Blade @break 和 @continue 指令有什么区别??

官方文档说:使用循环时,您还可以使用 @continue@break 指令结束循环或跳过当前迭代:

@foreach ($users as $user)
@if ($user->type == 1)
    @continue
@endif

<li> $user->name </li>

@if ($user->number == 5)
    @break
@endif

@endforeach

【讨论】:

以上是关于如何在 laravel 刀片视图中打破 foreach 循环?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel - 如何在视图中创建(匿名)动态刀片组件

如何在 vue 组件中调用视图刀片 laravel?

如何在刀片视图 laravel 5.6 中访问定义的关系

Laravel:如何在视图刀片中的一行中显示来自 DB 的多行

如何在从视图刀片 laravel 加载的 vue 组件上添加条件?

Laravel 5使用刀片模板在视图中调用函数时如何使用参数