【问题标题】:Laravel Blade: Increment variable by 1 each time?Laravel Blade:每次将变量增加 1?
【发布时间】:2015-09-04 07:45:26
【问题描述】:

使用 Laravel 刀片模板,有没有办法在 foreach 中包含一个变量并每次增加,或者有什么更好的方法?

例如:

@foreach($categories as $category)
  <li><a href="#tab_c1" role="tab" data-toggle="tab">{{$category->name}}</a></li>
@endforeach

foreach 块中,#tab_c1 的值需要增加。例如:#tab_c1, #tab_c2, #tab_c3

【问题讨论】:

    标签: php laravel laravel-4 blade


    【解决方案1】:

    只需使用键值。对于大多数将是 0 的数组。

    @foreach($categories as $i => $category)
      <li{{ $i == 0 ? ' class="active"' : '' }}><a href="#tab_c{{ $i }}" role="tab" data-toggle="tab">{{$category->name}}</a></li>
    @endforeach
    

    【讨论】:

    • 太好了,谢谢。有没有办法只在第一个&lt;li&gt; 中包含class="active"
    • 当然,只要使用三元运算符。我已经更新了我的答案。
    【解决方案2】:

    @foreach添加迭代器:

    @foreach($categories as $key => $category)
      <li @if ($key === 0) class="active" @endif>
        <a href="#tab_c{{$key+1}}" role="tab" data-toggle="tab">
          {{$category->name}}
        </a>
      </li>
    @endforeach
    

    {{$key+1}} 在我的示例中,因为在 PHP 中迭代器从 0 开始。

    【讨论】:

    • 太好了,谢谢。有没有办法只在第一个
    • 上包含 class="active" ?
    【解决方案3】:

    在 Laravel 5.3 中,您可以使用循环变量 $loop->iteration 来处理具体情况。 https://laravel.com/docs/5.3/blade#the-loop-variable

    例子:

    @foreach ($questions as $question)
        <tr>
            <th scope="row">{{ $loop->iteration }}</th>
            <td>{{ $question->question }}</td>
            <td>{{ $question->category_id }}</td>
        </tr>
    @endforeach
    

    【讨论】:

      【解决方案4】:

      在foreach循环中添加一个键值

      @foreach($questions as $key => $question)
      <tr>
          <th scope="row">{{ ++$key }}</th>
          <td>{{ $question->question }}</td>
          <td>{{ $question->category_id }}</td>
      </tr>
      @endforeach
      

      【讨论】:

        【解决方案5】:

        只需使用 {{ $loop->iteration }} 从 1 迭代到限制

        @foreach($categories as $category)
          <li><a href="#tab_c{{ $loop->iteration }}" role="tab" data-toggle="tab">{{$category->name}}</a></li>
        @endforeach
        

        【讨论】:

          【解决方案6】:

          你可以试试这个:

          @php($count=0)
          
          @foreach($unit->materials as $m)
              @if($m->type == "videos")
                  @php($count++)
              @endif
          @endforeach
          
          {{$count}}
          

          【讨论】:

            【解决方案7】:

            这应该可以解决问题 @php 与 laravel 中的 php 打开和关闭标签相同

            <?php $count=0; ?>
             @php($count=0)
            
            <table>
            <th>#</th>
            <th>Category Name</th>
            <tbody>
            @php($count=0)
            @foreach($categories as $category)
            @php($count++)
            <tr>
            <td>{{$count}}</td>
            <td>{{$category->name}}</td>
            </tr>
            @endforeach
            </tbody>
            </table>
            

            【讨论】:

            • 请为您的解决方案添加解释(例如,解释诀窍是什么,@php 函数的作用等...)
            猜你喜欢
            相关资源
            最近更新 更多
            热门标签