1. Laravel cung cấp cho chúng ta thẻ @include, @includeIf, @includeWhen, @includeFirst (ok)
@include
trong Blade template cho phép bạn có thể liên kết một blade view với một view khác. Tất cả các biến dữ liệu ở parent view đều được truyền đến view include.
Chẳng hạn mình có cấu trúc thư mục như sau:
Ở blade view home
ta code:
Như các bạn thấy, mình đã sử dụng cú pháp @include
với tham số là tên view liên kết cần đưa vào blade view home
này. Ngoài ra mình có khai báo biến $name
để thử xem là blade view includes.room
có nhận được hay không.
Tại blade view includes.room
mình code như sau:
Cuối cùng là đăng ký route để render blade view home
ra:
Kết quả này chứng minh cho việc ta có thể lấy tất cả các dữ liệu tại view liên kết từ parent view. Ngoài ra bạn cũng có thể truyền một dữ liệu bất kì cho view liên kết thông qua tham số thứ hai của thẻ @include
.
Kết quả này chứng minh cho việc ta có thể lấy tất cả các dữ liệu tại view liên kết từ parent view.
Trong trường hợp nếu bạn @include
một view không tồn tại thì framework sẽ báo lỗi. Chính vì vậy khi include một view không chắc chắn sẽ tồn tại thì ta sử dụng thẻ @includeIf
thay cho @include
.
Bạn cũng có thể include một view khi kiểm tra một điều kiện nào đó trả về boolean true
.
Laravel còn cung cấp thẻ @includeFirst
, thẻ này cho phép ta include view đầu tiên trong mảng view khai báo. Nhiều bạn sẽ hiểu ngay công dụng của thẻ này nếu theo dõi các tập trước của mình.
Như dòng code này, nếu view custom.admin
tồn tại thì nó sẽ include view này và bỏ qua view admin
. Còn nếu view custom.admin
không tồn tại thì nó sẽ bỏ qua và tiếp tục kiểm tra view admin
.
Lưu ý: Bạn nên tránh sử dụng
__DIR__
và__FILE__
trong blade view vì chúng chỉ trả kết quả đường dẫn của các file cache hay compile view, không cung cấp thông tin cần thiết.
Last updated