2016-03-13 7 views
5

ब्लेड टेम्पलेट में मैं पिछले() विधि का उपयोग foreach पाश के अंतिम यात्रा को खोजने के लिए:laravel ब्लेड में foreach पाश के अंतिम यात्रा का पता लगाएं

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

यह ठीक है? शायद ऐसा करने के लिए एक लार्वा शैली शैली है?

उत्तर

18

प्राप्त करने के लिए अनुमति देता है का उपयोग कर सकते Laravel 5.3+ का सवाल है, तो आप उपयोग कर सकते हैं $loop चर

$loop->last 

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

यदि आप if-condition को सही करना चाहते हैं तो इसमें डबल घुंघराले-ब्रेसेस की बजाय ब्रांड्स होना चाहिए :) – andersevenrud

+3

केवल लैरावेल संस्करण 5.3 से काम करता है –

0

अगर है कि पिछले विधि काम कर रहा है पता नहीं है, लेकिन अगर नहीं, तो इस कोशिश:

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

अगर $colors एक Collection, $colors->last() और end($colors) दोनों काम करता है

1
@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

आप जो करते हैं वह बिल्कुल फिन है ई अगर आप संग्रह में अंतिम आइटम का उदाहरण प्राप्त करना चाहते हैं।

साथ ही, Laravel 5.3 में आप $loop चर, जो आप पिछले यात्रा $loop->last के लिए बूलियन पाने के लिए या वर्तमान यात्रा सूचकांक $loop->iteration, रिकॉर्ड $loop->count की कुल संख्या और कुछ और The Loop Variable

@foreach ($posts as $post) 

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

@endforeach 
+0

+1 इसके अलावा, मुझे लगता है कि यह '$ loop-> last' सा ही है, जिनमें से मुख्य मुद्दा हल करती है उल्लेख के लायक है यह प्रश्न। – kefir500

संबंधित मुद्दे