不同视图中的不同 headers(Blade 模板,Laravel)

Different headers in different views (Blade template, Laravel)

我用的是Laravel的Bladetemplate。有没有办法为不同的视图设置不同的 header,并且 master.blade.php 中只包含一个视图?

master.blade.php

@include("elements.header")
  @yield('content')
  @section("footer")
  @show

view.blade.php

@extends("layouts.master")
    @section("title")

    @stop
    @section("content")
  @include("elements.error")

  @section("footer")
  @include("elements.footer")
  @stop

如果您想为不同的视图包含不同的 header 模板,不需要包含布局中的任何内容。相反,将适当的 header 模板包含在您的视图中的单独部分中,然后 在主模板中显示该部分:

master.blade.php

@yield('header')
@yield('content')

viewA.blade.php

@extends("layouts.master")

@section('header')
  @include('headerA')
@stop

@section('content')
  view content
@stop

viewB.blade.php

@extends("layouts.master")

@section('header')
  @include('headerB')
@stop

@section('content')
  view content
@stop

这样,您的每个视图都会在 header 部分中包含不同的 header 模板,这些模板稍后将在主布局中显示 @yield('header').

在你的主布局中

<title>@yield('title','Home')</title>

那么在你看来就叫

@section('title','My View 1')

@section('title','My View 2')

yield 中的第二个参数是默认值,如果 none 已定义。