blade trong laravel là gì?

Blade làtemplating engine đơn giản nhưng mạnh mẽ được cung cấp cùng với Laravel. Không giống như các engine khác, Blade không hạn chế bạn sử dụng code PHPtrong View của bạn.

Tiếp theo bài trước trong bài này chúng ta sẽ tìm hiểu Layoutcủa Blade Template

Layout là gì

Như chúng ta biết hầu hết các ứng dụng web đều có cùng bố cục trên nhiềutrang, vì vậy cách tiếp cận tốt hơn là xác định một mẫu chính nơi chúng ta có thể đặt tất cả các code giống nhau trong các trang. Trong Laravel, Blade Templatecho phép chúng ta xác định một mẫu chính có thể được mở rộng bởi các trang con khác.

Thiết kế layout cũng là một thành phần vô cùng quan trọng để có thể tận dụng tối đa sức mạnh của blade.

Một trang web bất kỳ thường có một số thành phần không đổi như header, footer, title... Chính vì thế nếu mỗi lần tạo ra một view ta lại copy lại nhưng thành phần như vậy thì sẽ gây lặp code và việc maintain cũng mất thời gian hơn do phải làm đi làm lại một việc trên nhiều màn hình. việc này có thể gậy thiếu sót.

Ví dụ

1. Tạo Layout chính

Bước 1: - Tạo thư mục layoutsbêntrong thư mục /resources/views/.
Bước 2: - Tạo file master.blade.php trong thư mục /resources/views/layouts/.
Bước 3: - Sao chép đoạn code sau vào filemaster.blade.php.

@yield['title'] @section['sidebar'] // Sidebar @show
@yield['content']

Trong đó

  • @yield['title'] : Sử dụng để hiển thị title của trang
  • @section['sidebar'] : Được sử dụng để xác định sidebar của trang
  • @show : Được sử dụng để hiển thị nội dung của một section
  • @yield['content'] : Được sử dụng để hiển thị nội dung chính của trang

2. Tạo các Layouts con

Bây giờ chúng ta sẽ tạo các layout con và sử dụng các thành phần chung của Layout cha đã tạo ở bước trên

Bước 1: - Tạo file page.blade.php trong /resource/Views/
Bước 2: - Sao chép code sau vào filepage.blade.php

@extends['layouts.master'] @section['title', 'Đây là title của trang'] @section['sidebar'] @parent

Đây là sidebar

@endsection @section['content']

Đây là phần hiển thị nội dung chính của trang

@endsection
  • @extends['layouts.master'] : Gọi đến layout cha và sử dụng các giá trị chung trong layout cha [master.blade.php]
  • @section['title', 'Đây là title của trang'] : Đặt giá trị cho phần title của trang.
  • @section['sidebar'] : xác định phần sidebar trong trang con
  • @parent : hiển thị nội dung của sidebar, được xác định trong layout cha.
  • @section['content'] : định nghĩa phần nội dung của trang

Lưu ý:Một section được bắt đầu bởi @section['name'] và kết thúc bởi @endsection

3. Tạo route

Tiếp theo chúng ta tạo route để test

Route::get['page',function[]{ return view['page']; }];

Ngoài ra các bạn có thể tham khảo thêm tại đây://laravel.com/docs/5.8/blade

Video liên quan

Chủ Đề