2015-12-28 16 views
8

Mam layouts.app.blade.php, gdzie mam moje znaczniki <html> i <body>, a także <nav>.
W <body> podaję zawartość dla każdej strony, więc w zasadzie rozszerza to app.blade.php.
Wszystkie podstawowe rzeczy laravel więc teraz mam to:Dynamiczny tytuł strony Laravel w pasku nawigacyjnym

<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') 

I chciałbym używać tego <a class="navbar-brand"> wyświetlać moje PageTitle. Oznacza to, że musi on zostać zmieniony dla każdego załadowanego szablonu (z @yield ("content")) w tym "parent.blade.php".

Jak to zrobić, używając Laravel 5.2?

Dziękujemy

Odpowiedz

16

Jeśli jest to twój mistrz strona tytułowa poniżej

<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> 

wówczas tytuł strony może zostać zmieniony na swojej stronie ostrza jak poniżej

@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 

Więcej informacje można znaleźć tutaj Laravel Docs

+1

No cóż, to całkiem proste. Działa jak marzenie. – nclsvh

0

można przekazać je do widoku na przykład

Controller

$title = 'Welcome'; 

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

Zobacz

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

lub php7

$title ?? 'title'; 

Null coalescing operator

Powiązane problemy