【问题标题】:Remove whitespace from Laravel Blade dynamic page title从 Laravel Blade 动态页面标题中删除空格
【发布时间】:2019-10-07 20:12:32
【问题描述】:

我正在为我的每个视图使用一个布局文件。我正在从我的控制器方法中动态设置页面标题,如下所示:

$metadata = [
    'page_title' => 'My Page Title',
    'page_description' => null,
];

return view('foo.index', compact('metadata'));

然后在我的布局文件中,我这样做是为了呈现标题:

@if(request()->route()->getName() == 'welcome' || request()->route()->getName() == 'home')
    <title>Welcome!</title>
@else
    <title>@yield('title')</title>
@endif

逻辑运行良好,标题正确呈现。但是,else 中有额外的空间,我无法删除。它是这样渲染的:

            <title>    Dynamic Page Title
</title>

理想情况下,它会呈现如下:

<title>Dynamic Page Title</title>

我看到了solution that others have provided,但这似乎不能解决我的问题(出于某种原因)。

因为我在我的 app.blade.php 文件中执行此操作,所以我不确定传递变量的另一种方法。

在每个视图中,我都这样设置标题:

@section('title')
    {{ $metadata['page_title'] ?? 'Welcome' }}
@endsection

感谢您的任何建议!

【问题讨论】:

    标签: laravel laravel-blade laravel-6


    【解决方案1】:

    您可以将标题作为第二个参数传递给@section,因为它是该部分的唯一内容

    @section('title', $metadata['page_title'] ?? 'Welcome')
    

    不要用@endsection 关闭部分

    空白是节的新行和缩进

    【讨论】:

    • 非常感谢!不过我很好奇,不使用@endsection 会导致问题吗?例如,我的@section('content') 有一个@endsection。页面没有爆炸。
    • 是的,因为您可以在视图中有多个部分,但传递第二个参数会指示 Blade 自动关闭该部分,并且额外的一个会破坏视图
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 2022-11-25
    • 2018-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多