导航栏品牌的Laravel动态页面标题

ncl*_*svh 9 php jquery dynamic twitter-bootstrap laravel

我有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')
Run Code Online (Sandbox Code Playgroud)

我想用它<a class="navbar-brand">来显示我的pagetitle.所以这意味着它必须为这个'parent.blade.php'中加载的每个模板(使用@yield('content'))进行更改.

我如何使用Laravel 5.2做到这一点?

非常感谢

Phi*_*iki 28

如果这是您的母版页标题

<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>
Run Code Online (Sandbox Code Playgroud)

然后您的页面标题可以在您的刀片页面中更改,如下所示

@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
Run Code Online (Sandbox Code Playgroud)

更多信息可以在这里找到Laravel Docs

  • 哦,好吧,这很简单。奇迹般有效。 (2认同)

Rod*_*igo 6

在 Laravel 9 和 PHP 8 中对我有用的另一种选择是在主布局中使用 prop。在我的项目中,我只有一种布局,所以很简单:

<x-layout :title="' - Page Title'">
  <!-- content -->
</x-layout>
Run Code Online (Sandbox Code Playgroud)

然后在layout.blade.php文件中:

@props(['title'])
<!DOCTYPE html>
<html lang="en">
<head>
  <title>Static Title{{$title ?? ""}}</title>
</head>
<body>
  <main>
    {{$slot}}
  </main>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)


Eri*_*rik 5

例如,您可以将其传递给视图

控制器

$title = 'Welcome';

return view('welcome', compact('title'));
Run Code Online (Sandbox Code Playgroud)

看法

isset($title) ? $title : 'title';
Run Code Online (Sandbox Code Playgroud)

或 php7

$title ?? 'title';
Run Code Online (Sandbox Code Playgroud)

空合并运算符