拉拉维尔刀片检查空前叉

2022-08-30 08:35:24

我想检查我的foreach是否为空,因此不会显示基本的html标记,并且内部没有结果。我试图将它包装在if语句中,然后如果它是空的,则不执行任何其他循环foreach。

@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

答案 1

查看文档以获得最佳结果:

@forelse($status->replies as $reply)
    <p>{{ $reply->body }}</p>
@empty
    <p>No replies</p>
@endforelse

答案 2

我认为您正在尝试检查数组是否为空。你可以这样做:

@if(!$result->isEmpty())
     // $result is not empty
@else
    // $result is empty
@endif

Reference isEmpty()


推荐