Laravel 4 как применить заголовок и метаданные к каждой странице с помощью главной страницы блейда


Пытаюсь применить индивидуальный заголовок и мета-описание к страницам моих веб-сайтов, но я не уверен, что то, как я пытаюсь, очень чисто.

Master.blade.php

<!DOCTYPE html>
<html lang="en">
<head>
    <title>{{ $title }}</title>
    <meta name="description" content="{{ $description }}">
</head>

Отдельная страница

@extends('layouts.master')
<?php $title = "This is an individual page title"; ?>
<?php $description = "This is a description"; ?>

@section('content')

Я чувствую, что это быстрый и грязный способ выполнить работу, есть ли более чистый способ?

Author: Mitch Glenn, 2014-02-16

4 answers

Это также работает:

Master.blade.php

<!DOCTYPE html>
<html lang="en">
<head>
    <title>@yield('title')</title>
    <meta name="description" content="@yield('description')">
</head>

Отдельная страница

@extends('layouts.master')

@section('title')
    This is an individual page title
@stop

@section('description')
    This is a description
@stop

@section('content')

Или, если вы хотите сократить это еще немного, поочередно сделайте следующее:

Отдельная страница

@extends('layouts.master')

@section('title', 'This is an individual page title')
@section('description', 'This is a description')

@section('content')
 86
Author: zeckdude, 2014-09-18 22:00:35

Это должно сработать:

@extends('layouts.master')
<?php View::share('title', 'title'); ?>

...

Вы также можете сделать это:

@extends('views.coming-soon.layout', ['title' => 'This is an individual page title'])
 8
Author: Antonio Carlos Ribeiro, 2014-02-15 23:28:52

Действительно рекомендую это:

Https://github.com/artesaos/seotools

Вы передаете информацию в представление, требующее содержимого

SEOTools::setTitle($page->seotitle);
SEOTools::setDescription($page->seodescription);
 2
Author: Paolo Resteghini, 2016-05-16 10:55:18

Никто не думает, что лучший способ - создать свой собственный класс с фасадом (Сайт::заголовок (), Сайт::описание и т. Д.) и мутаторами (через Str::макрос), Которые автоматически проверяют, соответствует ли заголовок, описание и т. Д. В правильном формате (максимальная длина, добавление категорий, значения по умолчанию, разделители и т. Д.) И при необходимости клонируют данные в другие поля (заголовок=> og:заголовок, описание=> og:описание)?

 1
Author: user2020432, 2014-02-16 01:19:39