
# @include, @extends, @section, và @yield
Laravel Blade cung cấp các từ khóa @include
, @extends
, @section
, và @yield
để giúp bạn tái sử dụng và tổ chức mã HTML một cách hiệu quả. Dưới đây là cách sử dụng từng từ khóa này với các ví dụ cụ thể.
@include
@include
cho phép bạn nhúng một view Blade khác vào trong view hiện tại. Đây là cách tuyệt vời để tái sử dụng các phần tử HTML như header, footer, hoặc sidebar.
Ví Dụ
Giả sử bạn có một view header.blade.php
:
<!-- resources/views/header.blade.php -->
<header>
<h1>My Website Header</h1>
</header>
Bạn có thể nhúng view này vào view chính của bạn như sau:
<!-- resources/views/welcome.blade.php -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Welcome</title>
</head>
<body>
@include('header')
<div class="content">
<p>Welcome to the homepage!</p>
</div>
</body>
</html>
@extends
@extends
được sử dụng để chỉ định layout mà view hiện tại sẽ kế thừa. Layout này thường chứa các cấu trúc HTML cơ bản mà các view khác có thể sử dụng lại.
Ví Dụ
Giả sử bạn có một layout app.blade.php
:
<!-- resources/views/layouts/app.blade.php -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>@yield('title')</title>
</head>
<body>
@include('header')
<div class="content">
@yield('content')
</div>
@include('footer')
</body>
</html>
Trong view cụ thể của bạn, bạn có thể kế thừa layout này như sau:
<!-- resources/views/home.blade.php -->
@extends('layouts.app')
@section('title', 'Home Page')
@section('content')
<h2>Welcome to the Home Page</h2>
<p>This is the home page content.</p>
@endsection
@section và @yield
@section
được sử dụng để xác định nội dung mà view con sẽ cung cấp cho các vùng nội dung được định nghĩa trong layout bằng @yield
.
Ví Dụ
Trong layout app.blade.php
, bạn có thể có các vùng nội dung:
<!-- resources/views/layouts/app.blade.php -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>@yield('title')</title>
</head>
<body>
@include('header')
<div class="content">
@yield('content')
</div>
@include('footer')
</body>
</html>
Trong view con home.blade.php
, bạn có thể định nghĩa các phần nội dung cho các vùng đó:
<!-- resources/views/home.blade.php -->
@extends('layouts.app')
@section('title', 'Home Page')
@section('content')
<h2>Welcome to the Home Page</h2>
<p>This is the home page content.</p>
@endsection
Tóm Tắt
- @include: Nhúng một view Blade khác vào view hiện tại.
- @extends: Kế thừa layout từ một view khác.
- @section: Định nghĩa một phần nội dung trong view con.
- @yield: Đánh dấu vị trí mà nội dung của view con sẽ được chèn vào trong layout.
Việc sử dụng @include
, @extends
, @section
, và @yield
giúp bạn tổ chức mã nguồn của mình một cách rõ ràng và tái sử dụng được các phần tử giao diện, làm cho việc phát triển và bảo trì ứng dụng trở nên dễ dàng hơn.
Danh mục
Bài viết liên quan

Blade Basics
Author: | ADMIN |
---|

Hiển thị giá trị trong Blade
Author: | ADMIN |
---|

Blade Components
Author: | ADMIN |
---|
Bài viết khác

Blade Basics
Author: | ADMIN |
---|

9 Mẹo Hữu Ích Khi Sử Dụng Blade Trong Laravel
Author: | ADMIN |
---|

Hiển thị giá trị trong Blade
Author: | ADMIN |
---|