我在Laravel webapp中得到了这个:
@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))
它没有检查。
答案 0 :(得分:58)
要确定是否有任何结果,您可以执行以下任何操作:
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)
有效,因为Collection实现了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()) { }
答案 1 :(得分:21)
您可以随时统计收藏品。例如,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
将返回导师有多少实习生。
https://laravel.com/docs/5.2/collections#method-count
在您的代码中,您可以执行类似的操作
{{1}}
答案 2 :(得分:16)
从 Laravel 5.3 开始,您只需使用:
if ($mentor->isNotEmpty()) {
//do something.
}
文档https://laravel.com/docs/5.5/collections#method-isnotempty
答案 3 :(得分:7)
这是最快的方式:
if ($coll->isEmpty()) {...}
像count
这样的其他解决方案比您需要的更多,这需要花费更多时间。
另外,isEmpty()
名称非常精确地描述了您要检查的内容,因此您的代码将更具可读性。
答案 4 :(得分:0)
我喜欢
(!$mentor)
更有效,更准确
答案 5 :(得分:0)
在php7
中,您可以使用Null Coalesce Opperator:
$employee = $mentors->intern ?? $mentors->intern->employee
这将返回Null
或员工。
答案 6 :(得分:0)
这是我到目前为止找到的最好的解决方案。
在刀片中
- (BOOL)evaluateServerTrust:(SecTrustRef)serverTrust forDomain:(nullable NSString *)domain;
在控制器中
@if($mentors->count() == 0)
<td colspan="5" class="text-center">
Nothing Found
</td>
@endif