Dynamischer Laravel-Seitentitel in der Navbar-Marke
Lesezeit: 3 Minuten
nclsvh
Ich habe layouts.app.blade.php, wo ich meine habe <html> und <body> Tags und auch die <nav>.
In dem <body> Ich liefere Inhalt für jede Seite, also erweitern sie im Grunde diese app.blade.php.
Alles grundlegende Laravel-Zeug, also habe ich jetzt Folgendes:
Und das möchte ich nutzen <a class="navbar-brand"> um meinen Seitentitel anzuzeigen. Das bedeutet also, dass es sich für jedes geladene Template (mit @yield(‘content’)) in dieser ‘parent.blade.php’ ändern muss.
Wie würde ich das mit Laravel 5.2 machen?
Danke vielmals
Erweitern Sie die obige Lösung um die Verwendung der Variablen in Ihrer Ansicht, wenn Sie ein Layout erweitern (sollten Sie), dann können Sie es so rendern, wenn Sie einen Titelabschnitt haben: @section(“title”,”$letter”). Dank der Kraft von Blade. Hoffe, das ist nützlich.
– Kelvin Omereshone
13. Januar 2019 um 22:39 Uhr
Wenn dies unten der Titel Ihrer Masterseite ist
<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>
dann kann Ihr Seitentitel in Ihrer Blade-Seite wie unten geändert werden
@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
Weitere Informationen finden Sie hier Laravel-Docs
Oh, das ist ziemlich einfach. Klappt wunderbar.
– nclsvh
28. Dezember 2015 um 19:01 Uhr
Ich habe immer versucht, die Titel von Controllern zu benennen, aber jetzt sehe ich, dass deiner besser ist. Danke für den Tipp!
– Mycodingproject
8. Juli 2019 um 10:37 Uhr
Erik
Sie können es beispielsweise an eine Ansicht übergeben
Definieren Sie diesen Titel in diesem Format wie unten angegeben in der Hauptdatei wie (master.blade.php)
<title>Vendor | @yield('mytitle') </title>
auf Seite hier All Company ist mein neuer Titel für die Blade-Datei, die Sie auf dieser Seite dynamisch betiteln möchten
@section('mytitle', 'All Company')
Deklarieren Sie in Ihrem Controller eine Variable namens Titel und komprimieren Sie sie wie unten
public function aboutUs()
{
//page title
$title="Project | About Us";
return view('project.about_us', compact('title'));
}
Rufen Sie auf Ihrer Ansichtsseite die Variable wie folgt auf
<title>{{ $title }}</title>
Eine andere Alternative, die für mich in Laravel 9 und PHP 8 funktioniert hat, ist die Verwendung einer Requisite in einem Master-Layout. In meinem Projekt habe ich nur ein Layout, also ist es einfach:
Erweitern Sie die obige Lösung um die Verwendung der Variablen in Ihrer Ansicht, wenn Sie ein Layout erweitern (sollten Sie), dann können Sie es so rendern, wenn Sie einen Titelabschnitt haben: @section(“title”,”$letter”). Dank der Kraft von Blade. Hoffe, das ist nützlich.
– Kelvin Omereshone
13. Januar 2019 um 22:39 Uhr