Làm việc với Laravel, khi bạn gửi 1 collection ra view thì có 2 trường hợp xảy ra
- Loop qua collection và hiển thị kết quả
- Nếu collection trả về kết quả là
nullthì hiển thị một thông báo dạng như làKhông có kết quả nào....
Đây chắc hẳn là cấu trúc mọi người thường dùng :
@if (count($records))
@foreach ($records as $record)
@include('record.item', $record)
@endforeach
@else
@include('record.no-items')
@endif
Cấu trúc trên không có gì sai, nhưng mình sẽ giới thiệu một cấu trúc khác, không rối như vậy:
// record/list.blade.php
<ul>
@each('record.item', $records, 'record', 'record.no-items')
</ul>
// record/item.blade.php
<li>{{ $record->title }}</li>
// record/no-items.blade.php
<li>Không có kết quả nào</li>
Bạn thấy đấy, từ 1 cấu trúc nested với if .. esle bạn có thể viết lại nó chỉ trong 1 dòng với @each
Nguồn: laravel-news