sourcecode

수집이 비어 있는지 Larabel 확인

copyscript 2022. 11. 26. 08:49
반응형

수집이 비어 있는지 Larabel 확인

제 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))

그것은 그것을 확인하지 않는다.

결과가 있는지 확인하려면 다음 중 하나를 수행합니다.

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

주/참고 자료

->first()

https://laravel.com/api/5.7/Illuminate/Database/Eloquent/Collection.html#method_first

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

->count()

https://laravel.com/api/5.7/Illuminate/Database/Eloquent/Collection.html#method_count

count($mentors)는 Countable 및 내부 count() 메서드를 구현하기 때문에 동작합니다.

https://laravel.com/api/5.7/Illuminate/Database/Eloquent/Collection.html#method_count

isNotEmpty()

https://laravel.com/docs/5.7/collections#method-isnotempty

그래서 할 수 있는 일은 다음과 같습니다.

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

컬렉션은 언제든지 셀 수 있습니다.예를들면$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

Larabel 5.3부터는, 다음의 것을 간단하게 사용할 수 있습니다.

if ($mentor->isNotEmpty()) {
//do something.
}

매뉴얼 https://laravel.com/docs/5.5/collections#method-isnotempty

이것이 가장 빠른 방법입니다.

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

기타 솔루션:count필요한 것보다 조금 더 많은 시간을 들일 수 있습니다.

게다가,isEmpty()name은 코드를 읽기 쉽게 하기 위해 체크하고자 하는 내용을 매우 정확하게 기술합니다.

이것이 내가 지금까지 발견한 가장 좋은 해결책이다.

인 블레이드

@if($mentors->count() == 0)
    <td colspan="5" class="text-center">
        Nothing Found
    </td>
@endif

컨트롤러 내

if ($mentors->count() == 0) {
    return "Nothing Found";
}

부터php7Null 병합 오퍼레이터를 사용할 수 있습니다.

$employee = $mentors->intern ?? $mentors->intern->employee

이것은 돌아올 것이다.Null또는 종업원.

나는 더 좋다

(!$mentor)

보다 효과적이고 정확한

먼저 컬렉션을 어레이로 변환할 수 있습니다.다음으로 다음과 같은 빈 방법을 실행합니다.

if(empty($collect->toArray())){}

언급URL : https://stackoverflow.com/questions/35839303/laravel-check-if-collection-is-empty

반응형