Contents

Laravel Layouts

Laravel Blade Layouts

Laravel uses Blade Templates

extends

@extends('file') is loading file.blade.php file.

section/show, section/endsection, yield, parent

Base File

1
2
3
4
5
@section('section-name1')
<p>This is test section.</p>
@show

@yield('section-name2', 'Default Value')

Extend File

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
@extends('base')

@section('section-name1')

@parent <!-- Load Parent Section Content -->

<p>This is replace section-name1</p>

@parent <!-- Load Parent Section Content -->

@endsection

@section('section-name2', 'This is section 2 value')

stack, push/endpush, prepend/endprepend

Base File

1
@stack('scripts')

Extend File

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
@push('scripts')
<script type="text/javascript">
    function pushFunction() {
        // This is imported after prepend.
    }
</script>
@endpush

@prepend('scripts')
<script type="text/javascript">
    function prependFunction() {
        // This is imported before push.
    }
</script>
@endprepend

Layout File

resources/views/layouts/base.blade.php

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<!DOCTYPE html>
<html>
<head>
    <title>@yield('title', 'Default Title')</title>
    @stack('styles')
</head>
<body>

@include('partials.menu')

@section('content')
<p>This is layout.</p>
@show

@yield('footer')

@stack('scripts')
</body>
</html>

Partial File

resources/views/partials/menu.blade.php

1
2
3
4
5
6
7

<ul>
    <li>Menu1</li>
    <li>Menu2</li>
    <li>Menu3</li>
    <li>Menu4</li>
</ul>

Extend File

resources/views/web.blade.php

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
@extends('layouts.base')

@push('styles')
<style type="text/css">
    p {
        margin: 10px;
    }
</style>
@endpush

@pretend('styles')
<style type="text/css">
    ul {
        list-style: none;
    }
</style>
@endpretend

@section('title', 'This is a extended file')

@section('content')
@parent
<p>This is web page.</p>
@parent
@endsection

@section('footer')
<p>This is footer.</p>
@endsection

@push('scripts')
<script type="text/javascript">
    function pushScript() {

    }
</script>
@endpush

@pretend('scripts')
<script type="text/javascript">
    function pretendScript() {

    }
</script>
@endpretend