Laravel sprawdź ostrze puste dla każdego


Chcę sprawdzić, czy moje foreach jest puste, aby podstawowe znaczniki html nie były wyświetlane bez żadnych wyników w środku. Próbuję zawinąć to w instrukcję if, a jeśli jest pusta, nie rób nic więcej, zapętl foreach.
@if ($status->replies === '')@elseif
<div class="media-body reply-body">
@foreach ($status->replies as $reply)
{{ $reply->body }} @endforeach@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() }}">
[/url]
<div class="media-body">
<h5 class="media-heading">[url="{{ route('profile.index', ['username' => $reply->user->username]) }}">{{ $reply->user->getNameOrUsername() }}[/url][/b]>
{{ $reply->body }} <ul class="list-inline list-replies">
[*]
[url="{{ route('status.like', ['statusId' => $reply->id]) }}"><i class="fa fa-thumbs-up">[/i][/url]
{{ $reply->likes->count() }} {{ str_plural('like', $reply->likes->count()) }}[/*]
[*]{{ $reply->created_at->diffForHumans() }}[/*]
[/list]

<hr>

@endforeach@endif

Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Myślę, że próbujesz sprawdzić, czy tablica jest pusta, czy nie. Możesz to zrobić w ten sposób:
@if(!$result->isEmpty())
// $result is not empty
@else
// $result is empty
@endif


Połączyć
isEmpty()
http://laravel.com/api/4.2/Ill ... Empty
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Musisz użyć pustego ()
@if (!empty($status->replies)) <div class="media-body reply-body">
@foreach ($status->replies as $reply)
{{ $reply->body }} @endforeach
@endif

Możesz użyć count, ale jeśli tablica jest większa, zajmie to więcej czasu, jeśli chcesz tylko wiedzieć, czy jest pusta, lepiej jest użyć pustej.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

To tablica, więc
==== ''
nie będzie działać (=== oznacza, że ​​powinien to być pusty ciąg).
Posługiwać się

count()
http://php.net/count]
do identyfikacji tablicy z dowolnymi elementami (count zwraca liczbę, 1 lub więcej będzie prawdą, 0 = fałsz).
@if (count($status->replies) > 0)
// your HTML + foreach loop
@endif
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Czek

dokumentacja
http://laravel.com/docs/5.1/bl ... tures
dla najlepszego wyniku:
@forelse($status->replies as $reply)
{{ $reply->body }}@empty
No replies@endforelse
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:


Echo danych, jeśli istnieją
>
Czasami możesz chcieć powtórzyć zmienną, ale nie jesteś pewien, czy została ustawiona. Możemy to wyrazić w szczegółowym kodzie PHP w następujący sposób:
{{ isset($name) ? $name : 'Default' }}

Jednak zamiast pisać operator trójskładnikowy, blade zapewnia następujące wygodne skróty:
{{ $name or 'Default' }}

W tym przykładzie, jeśli zmienna $ name istnieje, jej wartość zostanie wyświetlona. Jeśli jednak nie istnieje, zostanie wyświetlone słowo Default.

Od

https://laravel.com/docs/5.4/b ... ation
https://laravel.com/docs/5.4/blade#displaying-data
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Korzystając z poniższego kodu, można najpierw sprawdzić, czy zmienna jest ustawiona, czy nie, używając dyrektywy @isset z laravel, a następnie sprawdzić, czy tablica jest pusta, czy nie, używając dyrektywy @unless z 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
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

To jest moje najlepsze rozwiązanie, jeśli dobrze zrozumiałem pytanie:
Użyj metody
$ object- & > first ()
, aby raz uruchomić kod wewnątrz instrukcji
if
, czyli w pierwszej pętli. To samo dotyczy
$ 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">[b]{{ $data->email }}[/b]</td>
</tr>
@endforeach @if($object->last())
</tbody>
</table>

@endif

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się