Laravel 8 如何通过控制器将页面标题传递给视图?

How to pass page title to views through controller in Laravel 8?

我正在尝试通过控制器将每个页面标题动态传递给视图。我已将页面 header 包含在 views/components 文件夹中,并将其作为 <x-header></x-header> 传递给每个视图。然后在 header 标记中,我试图将页面标题回显为 {{$title}},但我收到错误“未定义的变量 $title”。如何调试这个错误?

控制器

public function index() {
    $title = "Home || My site";
    return view('home', compact('title'));
}

header.blade.php 文件在 components/header

<head>     
    <title>
        {{ $title }}
    </title>
</head>

home.blade.php 视图 header 位于顶部

<x-header></x-header>
<div class="search-relative search-relatives " id="search-relatives">
<div class="item height25vh" id="vid">

正确设置组件属性

<x-header :title=$title></x-header>

我假设您已经设置了 header.php 文件

Docs

尝试:

<x-header>{{ $title ?: 'Default Value' }}</x-header>