2016-01-10 13 views
5

क्या लैरवेल ब्लेड में @foreach लूप सॉर्ट करने का कोई तरीका है?
लैरवेल ब्लेड टेम्पलेटिंग @foreach ऑर्डर

@foreach ($specialist as $key) 
    <option value="{{$key->specialist_id}}"> {{$key->description}}</option> 
@endforeach 

मैं $key->description से ऑर्डर करना wolud,

मैं जानता हूँ कि मैं अपने नियंत्रक में से आदेश का उपयोग कर सकते,

->orderBy('description') 

लेकिन नियंत्रक अन्य मूल्यों वापस आती है और उन मूल्यों को होना चाहिए साथ ही क्रमबद्ध, इसलिए मुझे ब्लेड में ऑर्डर करने की आवश्यकता है।

उत्तर

14

यह मानते हुए कि आपके $ विशेषज्ञ चर सुवक्ता संग्रह है, तो आप कर सकते हैं:

@foreach ($specialist->sortBy('description') as $oneSpecialist) 
    <option value="{{ $oneSpecialist->specialist_id }}"> {{ $oneSpecialist->description }}</option> 
@endforeach 

इसके अलावा, आप टेम्पलेट से सीधे अपने सुवक्ता मॉडल कह सकते हैं:

@foreach (Specialist::all()->sortBy('description') as $oneSpecialist) 
    <option value="{{ $oneSpecialist->specialist_id }}"> {{ $oneSpecialist->description }}</option> 
@endforeach 

ध्यान दें कि आप कर रहे हैं अपने foreach() लूप में $ key का एक भ्रामक चर नाम का उपयोग कर। आपकी $ कुंजी वास्तव में एक सरणी वस्तु है, एक कुंजी नहीं। मुझे लगता है कि आपने कहीं भी foreach ($ array = $ $ value के रूप में $ सरणी) सिंटैक्स देखा और फिर $ मान हटा दिया?

1

मैं एक लार्वेल collection का उपयोग करने का सुझाव दूंगा। अधिक विशेष रूप से, sortBy()। आप इन दृश्यों में से किसी एक का उपयोग कर सकते हैं या नियंत्रक जिसे आप डेटा से गुजर रहे हैं। यदि किसी मॉडल द्वारा डेटा पारित किया जा रहा है, तो सूचीबद्ध किसी भी अन्य का उपयोग करने से पहले collect() फ़ंक्शन का उपयोग करना सुनिश्चित करें।

आशा है कि इससे मदद मिलती है!

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