【问题标题】:Find last iteration of foreach loop in laravel blade在 laravel 刀片中查找 foreach 循环的最后一次迭代
【发布时间】:2023-03-28 06:19:01
【问题描述】:

在刀片模板中,我使用 last() 方法查找 foreach 循环的最后一次迭代:

@foreach ($colors as $k => $v)
   <option value={!! $v->id !!} {{ $colors->last()->id==$v->id ? 'selected':'' }} > {!! $v->name !!} </option>
@endforeach

没事吧?也许有一种 Laravel 风格的方法可以做到这一点?

【问题讨论】:

    标签: php laravel laravel-5 blade laravel-blade


    【解决方案1】:

    对于 Laravel 5.3+,你可以使用 $loop 变量

    $loop->last
    
    @foreach ($colors as $k => $v)
         @if($loop->last)
             // at last loop, code here
         @endif
    @endforeach
    

    【讨论】:

    • 你可能想要更正 if 条件它应该有括号而不是双花括号 :)
    • @andersevenrud 双花括号对于 if 条件来说不是必需的,它非常有效
    【解决方案2】:

    如果您想获取集合中最后一项的实例,您所做的绝对没问题。

    此外,在 Laravel 5.3 中,您可以使用$loop 变量,它允许您获取最后一次迭代的布尔值$loop-&gt;last 或获取当前迭代索引$loop-&gt;iteration、记录总数$loop-&gt;count 和更多@ 987654321@

    @foreach ($posts as $post)
    
        {{ $post->title }} ({{ $loop->iteration }} of {{ $loop->count }})   
    
    @endforeach
    

    【讨论】:

    • +1 另外,我认为值得一提的是 $loop-&gt;last 位本身,它解决了这个问题的主要问题。
    【解决方案3】:
    @foreach ($colors as $v)
        <option value={!! $v->id !!} {!!($v == end($colors)) ? 'selected="selected"' : '' !!} > {!! $v->name !!} </option>
    @endforeach
    

    @foreach ($colors as $v)
        <option value={!! $v->id !!} {{($v == end($colors)) ? 'selected="selected"' : '' }} > {!! $v->name !!} </option>
    @endforeach
    

    【讨论】:

      【解决方案4】:

      如果$colorsCollection$colors-&gt;last()end($colors) 都有效

      【讨论】:

        【解决方案5】:

        不知道最后一种方法是否有效,如果没有,试试这个:

        @foreach ($colors as $v)
        <option value={!! $v->id !!} @if($v == end($colors)) 'selected' @endif > {!! $v->name !!} </option>
        @endforeach
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-01-18
          • 1970-01-01
          • 2018-04-04
          • 2013-05-17
          • 2017-11-13
          • 1970-01-01
          • 2011-01-17
          • 2019-04-24
          相关资源
          最近更新 更多