Как добиться разных названий для разных взглядов в Laravel? - PullRequest
0 голосов
/ 19 октября 2019

У меня есть веб-сайт, на котором пользователи могут загружать художественные работы, и у меня есть вид, который отображает специально отобранные художественные работы, например, если пользователь посещает http://example.com/artwork/GreenGarden, ему представляется художественное произведение с именем GreenGarden, а также, если онпосещений http://example.com/artwork/BlueSky ему представлено произведение с именем BlueSky.

Теперь я хочу каким-то образом вставить название произведения в заголовок отображаемой HTML-страницы, но я не совсем уверенкак это сделать, поскольку <head></head> распределяется между всеми моими страницами благодаря макету. Прямо сейчас, независимо от того, какой URL я посещаю, заголовок всегда «Мой сайт», потому что это то, что я жестко прописал в заголовке. Мне нужно как-то динамически заполнить заголовок на основе имени изображения.

<!doctype html>
<html lang="{{ app()->getLocale() }}">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>My Website</title>
        <link rel="stylesheet" href="{{asset('css/normalize.css')}}">
        <link rel="stylesheet" href="{{asset('css/app.css')}}">
    </head>
    <body>

    @yield('content')
    <script type="text/javascript" src="{{ URL::asset('js/jquery-3.2.1.min.js') }}"></script>
    <script type="text/javascript" src="{{ URL::asset('js/javascript.js') }}"></script>
    </body>
</html>

Ответы [ 2 ]

2 голосов
/ 19 октября 2019

в вашем основном файле макета добавьте этот раздел

<title>@yield('title')</title>

, затем в вашем блейд-файле, в котором вы расширяете этот макет, просто создайте этот раздел

@section('title')
    write your page title here
@endsection
1 голос
/ 19 октября 2019

Вот дополнение к ответу @sandy, которое является наиболее гибким, так как вы можете передать html struct:

  • Более короткий путь, если требуется передать только текст

@section('title', '<insert_text_here>')

  • Другой вариант - передать переменную в @ layout
In view file
@extends('layout_name', ['title' => '<title_here>'])

In layout
{{ $title ?? null }} // handle the presence of $title however you like
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...