Layouts.app.blade.phpがあり、<html>
および<body>
タグと<nav>
があります。<body>
では、すべてのページのコンテンツを生成するため、基本的にはこのapp.blade.phpを拡張します。
すべての基本的なLaravelものなので、今これがあります:
<div class="navbar-header">
<!-- Collapsed Hamburger -->
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#spark-navbar-collapse">
<span class="sr-only">Toggle Navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<!-- Branding Image -->
<a class="navbar-brand" href="/">
*Dynamic page title*
</a>
</div>
// ...
@yield('content')
そして、この<a class="navbar-brand">
を使用してページタイトルを表示したいと思います。つまり、これは、この「parent.blade.php」にロードされた(@yield( 'content')で)テンプレートごとに変更する必要があることを意味します。
Laravel 5.2を使用してこれをどのように実行しますか?
どうもありがとう
これが以下のマスターページのタイトルである場合
<html>
<head>
<title>App Name - @yield('title')</title>
</head>
<body>
@section('sidebar')
This is the master sidebar.
@show
<div class="container">
@yield('content')
</div>
</body>
次に、ページタイトルをブレードページで以下のように変更できます
@extends('layouts.master')
@section('title', 'Page Title')
@section('sidebar')
@parent
<p>This is appended to the master sidebar.</p>
@endsection
@section('content')
<p>This is my body content.</p>
@endsection
詳細はこちら Laravel Docs
たとえば、ビューに渡すことができます
コントローラー
$title = 'Welcome';
return view('welcome', compact('title'));
ビュー
isset($title) ? $title : 'title';
またはphp7
$title ?? 'title';
このようなブレードビュー
return view('front.list',compact('artists','letter'));
の代わりに-
return view('front.list',compact('artists'));
そして今、あなたはあなたが使うことができるビューで:
<title>Artists begging with {{ $letter }}</title>