【问题标题】:Different headers in different views (Blade template, Laravel)不同视图中的不同标题(刀片模板,Laravel)
【发布时间】:2018-04-10 00:42:21
【问题描述】:

我使用 Laravel 的 Bladetemplate。有没有办法为不同的视图设置不同的标题,只有一个包含在 master.blade.php 中?

ma​​ster.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

【问题讨论】:

    标签: php laravel templates laravel-5 blade


    【解决方案1】:

    如果您想为不同的视图包含不同的标题模板,则无需在您的布局中包含任何内容。相反,将正确的标题模板包含在视图中的单独部分中,然后在主模板中显示该部分

    ma​​ster.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 部分中包含不同的标题模板,这些模板稍后将通过 @yield('header') 显示在主布局中。

    【讨论】:

      【解决方案2】:

      在你的主布局中

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

      那么在你看来只需调用

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

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

      【讨论】:

        猜你喜欢
        • 2017-08-07
        • 1970-01-01
        • 2016-08-20
        • 2021-11-30
        • 2018-06-18
        • 2017-02-22
        • 1970-01-01
        • 2016-04-04
        • 1970-01-01
        相关资源
        最近更新 更多