#laravel #laravel-5
#laravel #laravel-5
Вопрос:
Я переместил код заголовка из шаблона в /views/layouts/header.blade.php
. Когда я вызываю это с помощью,
@yield('layouts.header')
или
@yield('header')
Он не отображает код.
Комментарии:
1. @RossWilson не могли бы вы опубликовать это в качестве ответа, пожалуйста?
Ответ №1:
Вам следует использовать [@include][1]
not @yield
. @yield
предназначен для рендеринга, @section
тогда @include
как для простого добавления файла.
База
<body>
@include('layouts.header')
<main>
@yield('content')
</main>
@include('layouts.footer')
</body>
Дочерний
@extends('master')
@section('content')
<h1>Hello world</h1>
@stop
Единственная причина, по которой вы могли бы использовать @yield
для заголовка, заключается в том, что у вас разные разделы заголовка во всех ваших дочерних компонентах.
Ответ №2:
Вы должны использовать @include('views.layouts.header')
на своей странице. @yield
используется для шаблонов или основных страниц, когда вы хотите расширить раздел на других страницах.
Ответ №3:
**master layout code**
<html>
<body>
@include('layouts.header')
<main>
@yield('content')
</main>
@include('layouts.footer')
</body>
*view blade page code*
@extends('master')
@section('content')
<h1>Hello world</h1>
@endsection