Laravel dynamic page title in navbar-brand
48,103
Solution 1
If this is your master page title below
<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>
then your page title can be changed in your blade page like below
@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
More information can be found here Laravel Docs
Solution 2
You can pass it to a view for example
Controller
$title = 'Welcome';
return view('welcome', compact('title'));
View
isset($title) ? $title : 'title';
or php7
$title ?? 'title';
Author by
nclsvh
Updated on July 05, 2022Comments
-
nclsvh almost 2 years
I have layouts.app.blade.php where I have my
<html>
and<body>
tags and also the<nav>
.
In the<body>
I yield content for every page, so they basically extend this app.blade.php.
All basic Laravel stuff so now I have this:<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')
And I would like to use this
<a class="navbar-brand">
to display my pagetitle. So this means it has to change for each template that is loaded (with @yield('content')) in this 'parent.blade.php'.How would I do this using Laravel 5.2?
Many thanks
-
nclsvh over 8 yearsOh well, that's pretty straight forward. Works like a charm.
-
Mycodingproject almost 5 yearsI was always trying to name the titles from controllers but now I see that yours is better. Thanks for the tip!