2016-03-13 11 views
5

Nel modello di lama I utilizzare il metodo last() per trovare l'ultima iterazione del ciclo foreach:Trova ultima iterazione del ciclo foreach in lama laravel

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

E 'ok? Forse c'è un modo in stile Laravel per fare lo stesso?

risposta

18

per quanto riguarda laravel 5.3+, è possibile utilizzare la variabile $loop

$loop->last 

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

Si potrebbe voler correggere la condizione if Dovrebbe avere parentesi invece di doppie parentesi graffe :) – andersevenrud

+3

Funziona solo da Laravel versione 5.3 –

0

Non so se questo ultimo metodo funziona, ma se non, provate questo:

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

se $colors è un Collection, $colors->last() e end($colors) entrambe le opere

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

o

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

Quello che fai è assolutamente finita e se si desidera ottenere l'istanza dell'ultimo elemento nella raccolta.

Inoltre, in laravel 5.3 è possibile utilizzare $loop variabile, che permette di ottenere booleana per ultima iterazione $loop->last o per ottenere indice di iterazione corrente $loop->iteration, il numero totale di record $loop->count e pochi altri The Loop Variable

@foreach ($posts as $post) 

    {{ $post->title }} ({{ $loop->iteration }} of {{ $loop->count }}) 

@endforeach 
+0

+1 Inoltre, penso che vale la pena menzionare il '$ loop-> last' po 'in sé, che risolve il problema principale di questa domanda. – kefir500

Problemi correlati