【问题标题】:Different headers in different views (Blade template, Laravel)不同视图中的不同标题(刀片模板,Laravel)
【发布时间】:2018-04-10 00:42:21
【问题描述】:
我使用 Laravel 的 Bladetemplate。有没有办法为不同的视图设置不同的标题,只有一个包含在 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
【问题讨论】:
标签:
php
laravel
templates
laravel-5
blade
【解决方案1】:
如果您想为不同的视图包含不同的标题模板,则无需在您的布局中包含任何内容。相反,将正确的标题模板包含在视图中的单独部分中,然后在主模板中显示该部分:
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 部分中包含不同的标题模板,这些模板稍后将通过 @yield('header') 显示在主布局中。
【解决方案2】:
在你的主布局中
<title>@yield('title','Home')</title>
那么在你看来只需调用
@section('title','My View 1')
@section('title','My View 2')
如果没有定义,yield 中的第二个参数是默认值。