라라벨 블레이드 점검 비어 있는 포어치
기본 html 마크업이 표시되지 않도록 foreach가 비어 있는지 확인하고 싶습니다.if 스테이트먼트로 랩을 하려고 합니다만, 비어 있는 경우는, 포어치를 루프 하지 말아 주세요.
@if ($status->replies === '')
@elseif
<div class="media-body reply-body">
@foreach ($status->replies as $reply)
<p>{{ $reply->body }}</p>
@endforeach
</div>
@endif
@if (!(empty($status->replies))
<div class="media-body reply-body">
@foreach ($status->replies as $reply)
<div class="media">
<a class="pull-left" href="{{ route('profile.index', ['username' => $reply->user->username]) }}">
<img class="media-object" alt="{{ $reply->user->getNameOrUsername() }}" src="{{ $reply->user->getAvatarUrl() }}">
</a>
<div class="media-body">
<h5 class="media-heading"><a href="{{ route('profile.index', ['username' => $reply->user->username]) }}">{{ $reply->user->getNameOrUsername() }}</a></h5>
<p>{{ $reply->body }}</p>
<ul class="list-inline list-replies">
<li>
<a href="{{ route('status.like', ['statusId' => $reply->id]) }}"><i class="fa fa-thumbs-up"></i></a>
{{ $reply->likes->count() }} {{ str_plural('like', $reply->likes->count()) }}</li>
<li>{{ $reply->created_at->diffForHumans() }}</li>
</ul>
</div>
<hr>
</div>
@endforeach
</div>
@endif
최적의 결과를 얻으려면 다음 문서를 참조하십시오.
@forelse($status->replies as $reply)
<p>{{ $reply->body }}</p>
@empty
<p>No replies</p>
@endforelse
어레이가 비어 있는지 확인하려고 하는 것 같습니다.다음과 같이 할 수 있습니다.
@if(!$result->isEmpty())
// $result is not empty
@else
// $result is empty
@endif
언급 is Empty()
empty()를 사용해야 합니다.
@if (!empty($status->replies))
<div class="media-body reply-body">
@foreach ($status->replies as $reply)
<p>{{ $reply->body }}</p>
@endforeach
</div>
@endif
카운트를 사용할 수 있지만 어레이가 클수록 시간이 더 오래 걸립니다. 빈 어레이를 사용하는 것이 더 나은지 여부만 알면 됩니다.
배열이니까==== ''
작동하지 않습니다(===는 빈 문자열이어야 함을 의미합니다).
count()를 사용하여 어레이에 요소가 있는지 확인합니다(count는 숫자를 반환하고 1 이상은 true로 평가하며 0 = false).
@if (count($status->replies) > 0)
// your HTML + foreach loop
@endif
데이터(존재하는 경우)의 에코
경우에 따라서는 변수를 에코하고 싶지만 변수가 설정되었는지 확실하지 않을 수 있습니다.다음과 같이 상세 PHP 코드로 표현할 수 있습니다.
{{ isset($name) ? $name : 'Default' }}
단, Blade는 3원짜리 문장을 작성하는 대신 다음과 같은 편리한 단축키를 제공합니다.
{{ $name or 'Default' }}
이 예에서는 $name 변수가 존재하는 경우 해당 값이 표시됩니다.단, 존재하지 않는 경우 Default라는 단어가 표시됩니다.
https://laravel.com/docs/5.4/blade#displaying-data 에서
다음 코드를 사용하여 먼저 laravel 디렉티브의 @isset을 사용하여 변수가 설정되었는지 여부를 확인한 후 laravel 디렉티브가 아닌 한 배열이 공백인지 @를 사용하지 않는지 확인할 수 있습니다.
@if(@isset($names))
@unless($names)
Array has no value
@else
Array has value
@foreach($names as $name)
{{$name}}
@endforeach
@endunless
@else
Not defined
@endif
질문을 잘 이해했다면 이것이 가장 좋은 해결책입니다.
사용방법$object->first()
내부에서 코드를 실행하는 방법if
스테이트먼트 원스, 즉 첫 번째 루프에 있는 경우.같은 개념으로,$object->last()
.
@if($object->first())
<div class="panel user-list">
<table id="myCustomTable" class="table table-hover">
<thead>
<tr>
<th class="col-email">Email</th>
</tr>
</thead>
<tbody>
@endif
@foreach ($object as $data)
<tr class="gradeX">
<td class="col-name"><strong>{{ $data->email }}</strong></td>
</tr>
@endforeach
@if($object->last())
</tbody>
</table>
</div>
@endif
언급URL : https://stackoverflow.com/questions/32652818/laravel-blade-check-empty-foreach
'IT' 카테고리의 다른 글
함수 호출 전 @ 문자 (0) | 2022.11.27 |
---|---|
목록 통합 및 기능 기능이 "루프용"보다 빠릅니까? (0) | 2022.11.27 |
개인 방법은 정말 안전한가요? (0) | 2022.11.27 |
루프에서 나머지 작업을 실행하는 Java 스레드가 다른 모든 스레드를 차단합니다. (0) | 2022.11.18 |
"INSERT..."를 하는 방법이 있습니까?Zend Framework 1.5의 중복 키 업데이트"에 대해 설명합니다. (0) | 2022.11.18 |