Laravel Blade: Variable jedes Mal um 1 erhöhen?

Lesezeit: 2 Minuten

Gibt es mit der Laravel-Blade-Vorlage eine Möglichkeit, eine Variable einzuschließen und jedes Mal in der Foreach zu erhöhen, oder was ist ein besserer Ansatz?

Zum Beispiel:

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

In dem foreach block, muss der Wert von #tab_c1 erhöht werden. z.B: #tab_c1, #tab_c2, #tab_c3

Benutzeravatar von Limon Monte
Limon Monte

Iterator hinzufügen zu @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}} in meinem Beispiel, weil der Iterator in PHP bei 0 beginnt.

  • Das ist großartig Danke. Gibt es eine Möglichkeit, class=”active” nur im ersten

  • einzufügen?

    – Ich komme wieder

    18. Juni 2015 um 15:35 Uhr

In Laravel 5.3 können Sie The Loop Variable, $loop->iteration für konkrete Situationen verwenden.
https://laravel.com/docs/5.3/blade#the-loop-variable

Beispiel:

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

Fügen Sie einen Schlüsselwert in der foreach-Schleife hinzu

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

Benutzeravatar von Unni KS
Unni KS

Verwenden Sie einfach {{ $loop->iteration }}, um von 1 bis limit zu iterieren

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

Benutzeravatar von Hiran DA Walawage
Hiran DA Walawage

Sie können dies versuchen:

@php($count=0)

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

{{$count}}

Verwenden Sie einfach den Schlüsselwert. Für die meisten Arrays wird das nur 0 sein.

@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

Dies sollte den Trick ausführen, @php ist derselbe wie PHP-Tags zum Öffnen und Schließen in Laravel

<?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>

  • Bitte fügen Sie eine Erklärung für Ihre Lösung hinzu (z. B. erklären, was der Trick ist, was die @php-Funktion macht, etc…)

    – Weboide

    21. August 2020 um 10:47 Uhr

1405110cookie-checkLaravel Blade: Variable jedes Mal um 1 erhöhen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy