私の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))
それはチェックしません。
コレクションはいつでもカウントできます。たとえば、$mentor->intern->count()
は、メンターのインターン数を返します。
https://laravel.com/docs/5.2/collections#method-count
あなたのコードでは、このようなことができます
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
結果があるかどうかを判断するには、次のいずれかを実行できます。
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)
は、コレクションが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()) { }
Laravel 5.3から開始すると、単純に使用できます:
if ($mentor->isNotEmpty()) {
//do something.
}
ドキュメント https://laravel.com/docs/5.5/collections#method-isnotempty
これが最速の方法です。
if ($coll->isEmpty()) {...}
count
などの他のソリューションは、必要以上に多くの処理を行うため、少し時間がかかります。
さらに、isEmpty()
名は、そこで確認したい内容を非常に正確に記述するため、コードが読みやすくなります。
php7
から Null Coalesce Opperator を使用できます。
$employee = $mentors->intern ?? $mentors->intern->employee
これは、Null
または従業員を返します。
私は好む
(!$mentor)
より効果的で正確です