Я использую файл макета для каждого из моих просмотров. Я динамически устанавливаю заголовок страницы из методов моего контроллера следующим образом:
$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>
Я видел решение, которое другие предоставили , но это делаетпохоже, не решает мою проблему (по какой-то причине).
Поскольку я делаю это в своем файле app.blade.php
, я не уверен в другом способе передачи переменной вверх.
В каждом представлении я устанавливаю заголовок так:
@section('title')
{{ $metadata['page_title'] ?? 'Welcome' }}
@endsection
Спасибо за любые предложения!