【问题标题】:How to break a foreach loop in laravel blade view?如何在 laravel 刀片视图中打破 foreach 循环?
【发布时间】: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

标签: php laravel foreach blade


【解决方案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

        【讨论】:

          猜你喜欢
          • 2021-02-11
          • 2018-04-04
          • 2017-11-13
          • 1970-01-01
          • 2019-05-25
          • 2016-06-29
          • 2019-08-24
          • 2017-05-29
          • 2018-10-07
          相关资源
          最近更新 更多