What’s the difference between Laravel Blade’s `@yield` and `@include`?

@yield is mainly used to define a section in a layout. When that layout is extended with @extends, you can define what goes in that section with the @section directive in your views.

The layout usually contains your HTML, <head>, <body>, <header> and <footer>s. You define an area (@yield) within the layout that your pages which are extending the template will put their content into.

In your master template you define the area. For example:

<body>
    @yield('content')
</body>

Let’s say your home page extends that layout

@extends('layouts.app')

@section('content')
    // home page content here
@endsection

Any HTML you define in the content section on your homepage view in the ‘content’ section will be injected into the layout it extended in that spot.

@include is used for reusable HTML just like a standard PHP include. It does not have that parent/child relationship like @yield and @section.

I highly suggest reading the Laravel Blade documentation for a more comprehensive description.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)