2016-03-07 10 views
11

मैं अपने Laravel webapp में यह मिल गया है:Laravel की जांच करता है, तो संग्रह खाली है

@foreach($mentors as $mentor) 
    @foreach($mentor->intern as $intern) 
     <tr class="table-row-link" data-href="/werknemer/{!! $intern->employee->EmployeeId !!}"> 
      <td>{{ $intern->employee->FirstName }}</td> 
      <td>{{ $intern->employee->LastName }}</td> 
     </tr> 
    @endforeach 
@endforeach 

मैं कैसे जांच कर सकता है यदि कोई हो तो $mentors->intern->employee?

जब मैं कार्य करें:

@if(count($mentors)) 

ऐसा नहीं है कि जांच नहीं की जाती।

उत्तर

8

आप हमेशा संग्रह की गणना कर सकते हैं। उदाहरण के लिए $mentor->intern->count() वापस लौटाएगा कि एक सलाहकार के पास कितने इंटर्न हैं।

https://laravel.com/docs/5.2/collections#method-count

अपने कोड में आप इस

foreach($mentors as $mentor) 
    @if($mentor->intern->count() > 0) 
    @foreach($mentor->intern as $intern) 
     <tr class="table-row-link" data-href="/werknemer/{!! $intern->employee->EmployeeId !!}"> 
      <td>{{ $intern->employee->FirstName }}</td> 
      <td>{{ $intern->employee->LastName }}</td> 
     </tr> 
    @endforeach 
    @else 
     Mentor don't have any intern 
    @endif 
@endforeach 
21

निर्धारित करने के लिए अगर कोई परिणाम तो निम्न कोई भी कर सकते हैं:

if ($mentor->first()) { } 
if (!$mentor->isEmpty()) { } 
if ($mentor->count()) { } 
if (count($mentor)) { } 

नोट्स/संदर्भ

->first()

http://laravel.com/api/5.2/Illuminate/Database/Eloquent/Collection.html#method_first

isEmpty()http://laravel.com/api/5.2/Illuminate/Database/Eloquent/Collection.html#method_isEmpty

->count()

http://laravel.com/api/5.2/Illuminate/Database/Eloquent/Collection.html#method_count

count($mentors) काम करता है क्योंकि संग्रह गणनीय लागू करता है और एक आंतरिक गिनती() विधि:

http://laravel.com/api/5.2/Illuminate/Database/Eloquent/Collection.html#method_count

तो तुम क्या कर सकते हैं:

if (!$mentors->intern->employee->isEmpty()) { } 
+0

हाँ मैं जानता हूँ कि लेकिन एक संरक्षक नहीं है हमेशा एक प्रशिक्षु है। तो मैं इसके लिए कैसे जांच सकता हूं? – Jamie

4

यह सबसे तेज़ तरीका है की तरह कुछ कर सकते हैं:

if ($coll->isEmpty()) {...} 

count की तरह अन्य समाधान में थोड़ा और अधिक की तुलना में आप की जरूरत है जो थोड़ा और समय खर्च होता है।

प्लस, isEmpty() नाम बिल्कुल सटीक वर्णन करता है कि आप वहां क्या देखना चाहते हैं ताकि आपका कोड अधिक पठनीय हो।

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