Laravel dynamic page title in navbar-brand

筅森魡賤 提交于 2019-12-21 04:05:22

问题


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


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




回答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';

Null coalescing operator




回答3:


Blade view like this-

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

instead of-

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

And now in your view you can use:

<title>Artists begging with {{ $letter }}</title>


来源:https://stackoverflow.com/questions/34497428/laravel-dynamic-page-title-in-navbar-brand

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!