30/09/2018, 23:53
Blade Template in Laravel 5.x
Mọi người cho em hỏi sự khác nhau giữa @include và @extend trong laravel 5.2 là gì với ạ.
Bài liên quan
Mọi người cho em hỏi sự khác nhau giữa @include và @extend trong laravel 5.2 là gì với ạ.
extend dùng khi bạn áp dụng layout.
còn include dùng khi bạn muốn đưa đoạn mã khác vào trang đó
Tên nói lên tất cả, extends là mở rộng, include là bao gồm, với extend thì child sẽ tương tự parent từ đầu đến đít có 1 số thay đổi cho phù hợp, còn includes là theo kiểu sử dụng, includes chỉ là 1 phần của trang chứa, có thể dùng ở bất cứ đoạn nào của trang chứa
Khác nhau là:
Ví dụ:
Với các file kết cấu kiểu nhiều component, thì nên dùng include. Ví dụ file layout.blade.php, sẽ gồm các component là header.blade.php, footer.blade.php, … thì nên dùng @include để include code của các file này vào file layout.blade.php.
Với các file cần sự kế thừa, các component giống hệt nhau thì mình dùng @extend. Ví dụ file about.blade.php, các component nó giống với layout.blade.php, chỉ mong muốn mở rộng phần content. Thì ở file layout.blade.php quy định 1 @yield(‘content’). Và ở file about.blade.php, extend(‘layout’), thêm phần khác biệt ở @section(‘content’)
Theo mình nên dùng
@section('content') ... @show
thay cho@yield('content')
. Vi yield xử dụng ở những đoạn ngắn thì hơn, ví dụ@yield('title')
Bạn không khai báo yield thì sao dùng được section
Khai báo cú pháp:
thay cú pháp:
Còn cú pháp chèn nội dung là: