How do I use sections in Blade templates? (@section, @yield)
Jun 18, 2025 am 12:31 AM@section and @yield in the Blade template are used to build reusable HTML structures. ①@section('name') defines the content block, and ②@yield('name') displays the content in the layout. For example, using @extends in a layout file and populating dynamic content with @section is achieved to achieve page structure reuse. By default, @section will overwrite the content, and if you need to append it, use @parent. In addition, it can be determined by @hasSection to control the output. The rational use of these instructions can improve the neatness and maintenance of Laravel views.
When you're working with Blade templates in Laravel, sections are a powerful way to structure and reuse parts of your HTML. They let you define blocks of content in one file (like a view) and then fill them in another (like a layout), which makes it easy to build consistent page structures without repeating code.
What Are @section
and @yield
?
At the core of Blade's layout system are two directives: @section
and @yield
.
-
@section('name')...@endsection
defines a block of content. -
@yield('name')
is used in a layout to display the content defined by a section from another file.
For example, if you have a main layout ( app.blade.php
) that uses @yield('content')
, any child view can define what goes into that section using @section('content')...@endsection
.
This setup helps keep your layouts clean and modular while allowing flexibility across different pages.
How to Use Layouts with Sections
Blade makes it easy to extend a layout using the @extends
directive at the top of your child view.
Here's how it works:
- Create a layout file, like
resources/views/layouts/app.blade.php
. - In that layout, use
@yield()
for dynamic content areas. - In your child view, add
@extends('layouts.app')
. - Then use
@section('section-name')...@endsection
to fill in each area.
Example layout ( app.blade.php
):
<html> <head> <title>@yield('title')</title> </head> <body> <div class="container"> @yield('content') </div> </body> </html>
Child view ( home.blade.php
):
@extends('layouts.app') @section('title', 'Home Page') @section('content') <h1>Welcome to the Home Page</h1> <p>This is the main content.</p> @endsection
This way, you get a full HTML page where the title and content come from the child view.
Overwriting vs Appending to Sections
One thing to watch out for: sometimes you don't want to replace a section entirely—you might want to add to it instead.
By default, @section()
replaces whatever was there. But if you want to append content, use @parent
inside your section.
Let's say your layout has this:
@section('scripts') <script src="main.js"></script> @endsection
And in your child view:
@section('scripts') @parent <script src="custom.js"></script> @endsection
The result will include both main.js
and custom.js
. Without @parent
, only custom.js
would show up.
This pattern is useful when including page-specific scripts or styles while keeping global ones intact.
Another common case is defining optional sections. You can check if a section exists using @hasSection()
:
@if(View::hasSection('sidebar')) <div class="sidebar">@yield('sidebar')</div> @endif
That way, the sidebar only shows up if a child view actually defines it.
Using Blade sections well can make your Laravel views much cleaner and easier to maintain. It's not complicated once you get the flow down, but it does require paying attention to how sections are named and whether they're being replaced or appended to.
The above is the detailed content of How do I use sections in Blade templates? (@section, @yield). For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

PHPbecamepopularforwebdevelopmentduetoitseaseoflearning,seamlessintegrationwithHTML,widespreadhostingsupport,andalargeecosystemincludingframeworkslikeLaravelandCMSplatformslikeWordPress.Itexcelsinhandlingformsubmissions,managingusersessions,interacti

TosettherighttimezoneinPHP,usedate_default_timezone_set()functionatthestartofyourscriptwithavalididentifiersuchas'America/New_York'.1.Usedate_default_timezone_set()beforeanydate/timefunctions.2.Alternatively,configurethephp.inifilebysettingdate.timez

TovalidateuserinputinPHP,usebuilt-invalidationfunctionslikefilter_var()andfilter_input(),applyregularexpressionsforcustomformatssuchasusernamesorphonenumbers,checkdatatypesfornumericvalueslikeageorprice,setlengthlimitsandtrimwhitespacetopreventlayout

ThePhpfunctionSerialize () andunserialize () AreusedtoconvertcomplexdaTastructdestoresintostoraSandaBackagain.1.Serialize () c OnvertsdatalikecarraysorobjectsraystringcontainingTypeandstructureinformation.2.unserialize () Reconstruct theoriginalatataprom

You can embed PHP code into HTML files, but make sure that the file has an extension of .php so that the server can parse it correctly. Use standard tags to wrap PHP code, insert dynamic content anywhere in HTML. In addition, you can switch PHP and HTML multiple times in the same file to realize dynamic functions such as conditional rendering. Be sure to pay attention to the server configuration and syntax correctness to avoid problems caused by short labels, quotation mark errors or omitted end labels.

The key to writing clean and easy-to-maintain PHP code lies in clear naming, following standards, reasonable structure, making good use of comments and testability. 1. Use clear variables, functions and class names, such as $userData and calculateTotalPrice(); 2. Follow the PSR-12 standard unified code style; 3. Split the code structure according to responsibilities, and organize it using MVC or Laravel-style catalogs; 4. Avoid noodles-style code and split the logic into small functions with a single responsibility; 5. Add comments at key points and write interface documents to clarify parameters, return values ??and exceptions; 6. Improve testability, adopt dependency injection, reduce global state and static methods. These practices improve code quality, collaboration efficiency and post-maintenance ease.

Yes,youcanrunSQLqueriesusingPHP,andtheprocessinvolveschoosingadatabaseextension,connectingtothedatabase,executingqueriessafely,andclosingconnectionswhendone.Todothis,firstchoosebetweenMySQLiorPDO,withPDObeingmoreflexibleduetosupportingmultipledatabas
