3. Rendering views for collections (ok)
https://viblo.asia/p/tap-13-blade-template-laravel-1VgZv1dRKAw
Nếu bạn có một mảng dữ liệu và muốn truyền từng dữ liệu vào một view nào đó thì bạn có thể sử dụng @each
thay vì @foreach
và @include
.
Chẳng hạn mình có cấu trúc thư mục như sau:
Đầu tiên mình sẽ thử sử dụng cách thông thường đó là dùng @foreach
và @include
. Tại blade view list.blade.php
mình sẽ code nội dung như sau:
Và blade view includes.item
:
Sau đó chúng ta đăng ký route và chạy thử:
Bây giờ chúng ta sẽ dùng @each
để thay thế cách trên. Ta chỉ cần thay đổi đoạn vòng lặp trong blade view list
.
@each
này sẽ nhận:
Tham số đầu tiên là tên view include
Tham số thứ hai là biến chứa mảng dữ liệu
Tham số thứ ba là tên biến nhận giá trị trong view include.
Ngoài ra trong trường hợp nếu mảng dữ liệu rỗng thì ta có thể include view hiện thông báo gì đó bằng cách khai báo thêm tham số thứ tư ở @each
với giá trị là tên view chứa nội dung thông báo.
Lưu ý: Các view được render thông qua
@each
không thể nhận các biến dữ liệu được truyền đến parent view. Nên bạn cần cần nhắc sử dụng@foreach
và@include
để thay thế nếu các view include cần những biến dữ liệu này.
Last updated