web-dev-qa-db-ja.com

Laravel navbar-brandの動的ページタイトル

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を使用してこれをどのように実行しますか?

どうもありがとう

11
nclsvh

これが以下のマスターページのタイトルである場合

<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

32
PhillipMwaniki

たとえば、ビューに渡すことができます

コントローラー

$title = 'Welcome';

return view('welcome', compact('title'));

ビュー

isset($title) ? $title : 'title';

またはphp7

$title ?? 'title';

ヌル合体演算子

2
Erik

このようなブレードビュー

return view('front.list',compact('artists','letter'));

の代わりに-

return view('front.list',compact('artists'));

そして今、あなたはあなたが使うことができるビューで:

<title>Artists begging with {{ $letter }}</title>
0
V.K. Singh