수집이 비어 있는지 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";
}
부터php7
Null 병합 오퍼레이터를 사용할 수 있습니다.
$employee = $mentors->intern ?? $mentors->intern->employee
이것은 돌아올 것이다.Null
또는 종업원.
나는 더 좋다
(!$mentor)
보다 효과적이고 정확한
먼저 컬렉션을 어레이로 변환할 수 있습니다.다음으로 다음과 같은 빈 방법을 실행합니다.
if(empty($collect->toArray())){}
언급URL : https://stackoverflow.com/questions/35839303/laravel-check-if-collection-is-empty
'sourcecode' 카테고리의 다른 글
MariaDB가 이 덤프 파일을 가져올 수 없습니다. (0) | 2022.11.27 |
---|---|
PHP로 cURL이 뭐죠? (0) | 2022.11.27 |
경로를 변경해도 새 페이지의 맨 위로 스크롤되지 않음 (0) | 2022.11.26 |
'\r' 이스케이프 시퀀스의 용도는 무엇입니까? (0) | 2022.11.26 |
왜 python은 루프 뒤에 'else'를 사용하는가? (0) | 2022.11.26 |