繁体   English   中英

Laravel Blade:仅当在扩展上给出变量时才显示元标记

[英]Laravel Blade: Show meta-tag only when variable is given on extend

这是我的master.blade.php的开始

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>@yield('title')</title>
    <meta name="description" content="@yield('meta_desc')">

如果我将其扩展到没有像这样给出meta_desc的页面:

@extends('layouts.index')

@section('title')
A nice title
@endsection

此页面的标题中包含带空说明的元标记

<meta name="description" content="">

但是,当没有给出meta_desc时,我想完全跳过meta标签。 我试图将master.blade.php的代码更改为

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>@yield('title', )</title>
    @if(!empty($meta_desc))
    <meta name="description" content="@yield('meta_desc')">
    @endif 

但随后是元标记

<meta name="description" content="">

那时总会丢失。 我该如何解决?

你可以做这样的事情

master.blade.php

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>@yield('title')</title>
    @if($metaDesc != "")
       <meta name="description" content="{{ $metaDesc }}">
    @endif

调节器

$metaDesc = "Testing";
        return view('test', compact('metaDesc'));

test.blade.php

@extends('layouts.master')

@section('title', 'Testing')

@section('content')
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aspernatur consectetur eligendi esse id praesentium ullam! Alias asperiores, consectetur delectus, dicta facilis impedit itaque iure magni nisi odio perferendis tenetur ut!
@endsection

因此,基本上我所做的是将meta description变量传递给主版面,如果变量为“”,则根本不显示<meta>

如有任何疑问,请随时与我们联系。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM