如何在多个文件中调用@extends?

时间:2019-11-08 21:12:36

标签: php laravel laravel-blade

我正在将laravel项目重构为更孤立的项目,并且据我了解,使用@extends/@yield而不是@includes总是很好,而且随着我继续开发项目,它变得更加困难,而且布局变得一团糟。考虑以下结构文件夹:

views
    categories
        index.blade.php
        show.blade.php
        ...
    layouts
        sidenav
            homesidenav.blade.php
            contentsidenav.blade.php
        header.blade.php
        footer.blade.php
        master.blade.php

现在我在从master.blade.php产生页眉和页脚时遇到问题。我做到了,尽管我不确定这是否正确:

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

在我的header.blade.php上,我有这个:

@extends('layouts.master')

@section('header')
    //All header content here
@endsection

在我的模型页面(index.blade.php)上,我有这个:

@extends('layouts.master')

@section('title', 'Category List')

@section('content')
    //All main content here
@endsection

当我访问类别索引页面时,我的页眉和页脚不包括在我的结果中。我犯了什么错误?

1 个答案:

答案 0 :(得分:0)

页眉和页脚应包括在内,因为它们需要在主布局中“包含”,而不是您将在扩展模板和屈服中定义的部分。

<body>
    @include('layouts.header')

    @yield('content')

    @include('layouts.footer')
</body>