我想检查一下foreach是否为空,这样基本的html标记就不会显示出来,里面也没有结果。我试着把它 Package 在一个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
8条答案
按热度按时间mwg9r5ms1#
查看文档以获得最佳结果:
tktrz96b2#
我想你是在检查数组是否为空,你可以这样做:
引用为空()
9rnv2umw3#
您应该使用empty()
你可以使用count,但是如果数组更大,它需要更长的时间,如果你只需要知道它是否为空,那么使用empty是更好的。
58wvjzkj4#
它是一个数组,所以
==== ''
不起作用(===意味着它必须是一个空字符串)。使用count()来标识数组是否包含任何元素(count返回一个数字,1或更大的值将计算为true,0 = false。)
polkgigr5#
如果数据存在则回显数据
有时候你可能想回显一个变量,但是你不确定这个变量是否已经被设置了。我们可以用冗长的PHP代码来表达这一点:
但是,Blade为您提供了以下方便的快捷方式,而不是编写三元语句:
在此示例中,如果$name变量存在,则将显示其值。但是,如果不存在,则将显示单词Default。
来自https://laravel.com/docs/5.4/blade#displaying-data
ikfrs5lh6#
如果我很好地理解了这个问题,这是我的最佳解决方案:
使用
$object->first()
方法运行if
语句中的代码一次,即在第一次循环时。对于$object->last()
也是如此。pvabu6sv7#
使用以下代码,可以首先使用laravel指令的@isset检查变量是否已设置,然后使用laravel指令的@unless检查数组是否为空
aurhwmvo8#
Laravel 9以上最现代、最简单和最短的解决方案是
@empty
标签: