Laravel, Laravel cơ bản

[Laravel][Bài 7] Làm việc với layout và view Blade Templates trong Laravel

Chào các bạn, hôm nay mình xin được giới thiệu một phần không thể thiếu khi các bạn làm việc với laravel đó là Layout và view. Ở các bài trước thì mình đã có hướng dẫn các bạn cách truyền biến từ Controller qua view, ở bài này mình sẽ hướng dẫn mọi người các mình tổ chức các file view cũng như một số cú pháp để làm việc với nó.

1. Làm việc với Layout.

Khi truy cập vào hầu hết các website nhưng thegiodidong, fpt, lazada hay wechiase nếu các bạn để ý một chút thì chúng ta sẽ thấy khi ta duy chuyển hoặc truy cập nhiều phần hoặc nhiều trang khác nhau, thì sẽ có một số thành phần nó sẽ giống nhau hoàn toàn và gần như không thay đổi ở tất cả các trang khác nhau như Header, Footer, Menu… Có bao giờ các bạn tự hỏi liệu người ta có phải định nghĩa và khai báo các thành phần này ở tất cả các trang? Chắc chắn là không rồi các bạn ạ, không ai đi thiết kế web mà đi làm như vậy cả, mà người ta sẽ khai báo 1 file layout để chứa các thành phần dùng chung và ở mỗi trang view chúng ta chỉ cần gọi lại layout đó mà không cần phải viết lại hay định nghĩa lại. Để hiểu rõ hơn thì chúng ta sẽ đi làm 1 ví dụ nhé.

Chúng ta sẽ cùng đi tạo 1 Layout tên là master.balde.php để dùng chung cho cả app tại folder view -> layouts (Folder này chúng ta tự tạo).

Nhưng các bạn thấy, chúng ta sẽ tạo 1 page có cấu trúc hoàn chỉnh, trong phần header mình có thêm bootstrap. Trong Laravel tất cả các file CSS và Javascript chúng ta sẽ bỏ vào folder public, như trong ví dụ trong folder public của dự án mình có file bootstrap/css/bootstrap.min.css, để nhúng file này vào layout thì chúng ta chỉ cần khai báo 

chúng ta làm tương tự với các file css hoặc javascript khác.

Tất cả các code trên layout sẽ được dùng lại ở những trang nào kế thừa nó. Các bạn để ý 2 dòng

– @yield(‘header’)

– @yield(‘content’)

đây sẽ là 2 thành phần động, sẽ thay tại mỗi trang view khác nhau, tuỳ vào dữ liệu mà chúng ta truyền vào nó.

Bây giờ chúng ta sẽ sửa lại trang about.blade.php kế thừa layout master này và thay đổi các thành phần động header và content.

Trang about sẽ kế thừa layout master và sẽ thay đổi các thành phần header và content nhưng trong code. Như vậy nếu các bạn chạy file about và view code ra thì chúng ta sẽ có nội dung như sau.

Tất cả các thành phần của layout sẽ được giữ lại và thay thế nội dụng của phần header và content. Riêng phần Session message vì không có nên nó sẽ không xuất hiện.

Để hiểu rõ hơn thì chúng ta có thể tham khảo hình ảnh này.

Trong một dự án thì có thể có nhiều layout nhưng những layout đó sẽ được dùng lại rất nhiều lần ở các trang view khác nhau, tuỳ vào dự án mà chúng ta tổ chức layout sau cho hợp lí và khoa học nhất.

2. Một số cú pháp dùng trong file view blade.php

Kế thừa layout

Show dữ liệu

Ví dụ chúng ta có biến $userName cần show ra ngoài view, thay vì phải đóng mở thẻ php rồi dùng lênh echo thì chúng ta có thể sử dụng cú pháp

Câu lệnh điều khiển

Câu lệnh Switch case

Cậu lệnh lặp

Ngoài ra còn một số lệnh nâng cao, các bạn có thể tham khảo thêm tại trang laravel.com

Nếu bạn là người mới bắt đầu tiếp cận với Framework thì bài này sẽ tương đối khó hiểu, chúng ta có thể tìm hiểu thêm tại trang chủ Laravel hoặc có thể để lại comment mình sẽ giải đáp cho các bạn.

Các bạn có thể tham khảo nội dung code của bài này tại đây.

Cảm ơn các bạn đã theo dõi bài viết và hẹn gặp lại trong bài sau.

Spread the love

Leave a Reply

Your email address will not be published. Required fields are marked *